@expo/cli 0.22.25 → 0.22.26

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 (722) hide show
  1. package/build/bin/cli +91 -93
  2. package/build/bin/cli.map +1 -1
  3. package/build/metro-require/require.js +52 -53
  4. package/build/src/api/endpoint.js +2 -6
  5. package/build/src/api/endpoint.js.map +1 -1
  6. package/build/src/api/getExpoGoIntermediateCertificate.js +3 -5
  7. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  8. package/build/src/api/getExpoSchema.js +12 -16
  9. package/build/src/api/getExpoSchema.js.map +1 -1
  10. package/build/src/api/getNativeModuleVersions.js +4 -6
  11. package/build/src/api/getNativeModuleVersions.js.map +1 -1
  12. package/build/src/api/getProjectDevelopmentCertificate.js +3 -5
  13. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  14. package/build/src/api/getVersions.js +5 -7
  15. package/build/src/api/getVersions.js.map +1 -1
  16. package/build/src/api/graphql/client.js +26 -32
  17. package/build/src/api/graphql/client.js.map +1 -1
  18. package/build/src/api/graphql/queries/AppQuery.js +4 -6
  19. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  20. package/build/src/api/graphql/queries/UserQuery.js +3 -5
  21. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  22. package/build/src/api/graphql/types/App.js +1 -3
  23. package/build/src/api/graphql/types/App.js.map +1 -1
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +8 -10
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
  26. package/build/src/api/rest/cache/ResponseCache.js +12 -20
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +11 -13
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  30. package/build/src/api/rest/client.js +35 -53
  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 +3 -5
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  35. package/build/src/api/rest/wrapFetchWithOffline.js +3 -5
  36. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
  37. package/build/src/api/rest/wrapFetchWithProgress.js +7 -11
  38. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
  39. package/build/src/api/rest/wrapFetchWithProxy.js +3 -5
  40. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js +6 -8
  42. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
  43. package/build/src/api/settings.js +5 -7
  44. package/build/src/api/settings.js.map +1 -1
  45. package/build/src/api/updateDevelopmentSession.js +17 -23
  46. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  47. package/build/src/api/user/UserSettings.js +21 -39
  48. package/build/src/api/user/UserSettings.js.map +1 -1
  49. package/build/src/api/user/actions.js +21 -27
  50. package/build/src/api/user/actions.js.map +1 -1
  51. package/build/src/api/user/expoSsoLauncher.js +26 -30
  52. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  53. package/build/src/api/user/otp.js +29 -35
  54. package/build/src/api/user/otp.js.map +1 -1
  55. package/build/src/api/user/user.js +30 -44
  56. package/build/src/api/user/user.js.map +1 -1
  57. package/build/src/config/configAsync.js +23 -29
  58. package/build/src/config/configAsync.js.map +1 -1
  59. package/build/src/config/index.js +21 -25
  60. package/build/src/config/index.js.map +1 -1
  61. package/build/src/customize/customizeAsync.js +6 -8
  62. package/build/src/customize/customizeAsync.js.map +1 -1
  63. package/build/src/customize/generate.js +16 -20
  64. package/build/src/customize/generate.js.map +1 -1
  65. package/build/src/customize/index.js +12 -14
  66. package/build/src/customize/index.js.map +1 -1
  67. package/build/src/customize/resolveOptions.js +2 -4
  68. package/build/src/customize/resolveOptions.js.map +1 -1
  69. package/build/src/customize/templates.js +54 -58
  70. package/build/src/customize/templates.js.map +1 -1
  71. package/build/src/customize/typescript.js +7 -11
  72. package/build/src/customize/typescript.js.map +1 -1
  73. package/build/src/export/createMetadataJson.js +9 -11
  74. package/build/src/export/createMetadataJson.js.map +1 -1
  75. package/build/src/export/embed/exportEager.js +6 -8
  76. package/build/src/export/embed/exportEager.js.map +1 -1
  77. package/build/src/export/embed/exportEmbedAsync.js +61 -71
  78. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  79. package/build/src/export/embed/exportServer.js +55 -57
  80. package/build/src/export/embed/exportServer.js.map +1 -1
  81. package/build/src/export/embed/index.js +40 -44
  82. package/build/src/export/embed/index.js.map +1 -1
  83. package/build/src/export/embed/resolveOptions.js +36 -44
  84. package/build/src/export/embed/resolveOptions.js.map +1 -1
  85. package/build/src/export/embed/xcodeCompilerLogger.js +27 -39
  86. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  87. package/build/src/export/exportApp.js +63 -67
  88. package/build/src/export/exportApp.js.map +1 -1
  89. package/build/src/export/exportAssets.js +27 -35
  90. package/build/src/export/exportAssets.js.map +1 -1
  91. package/build/src/export/exportAsync.js +9 -13
  92. package/build/src/export/exportAsync.js.map +1 -1
  93. package/build/src/export/exportDomComponents.js +45 -53
  94. package/build/src/export/exportDomComponents.js.map +1 -1
  95. package/build/src/export/exportHermes.js +63 -85
  96. package/build/src/export/exportHermes.js.map +1 -1
  97. package/build/src/export/exportStaticAsync.js +62 -72
  98. package/build/src/export/exportStaticAsync.js.map +1 -1
  99. package/build/src/export/favicon.js +27 -33
  100. package/build/src/export/favicon.js.map +1 -1
  101. package/build/src/export/getPublicExpoManifest.js +5 -7
  102. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  103. package/build/src/export/getResolvedLocales.js +9 -11
  104. package/build/src/export/getResolvedLocales.js.map +1 -1
  105. package/build/src/export/html.js +6 -10
  106. package/build/src/export/html.js.map +1 -1
  107. package/build/src/export/index.js +28 -32
  108. package/build/src/export/index.js.map +1 -1
  109. package/build/src/export/metroAssetLocalPath.js +30 -36
  110. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  111. package/build/src/export/persistMetroAssets.js +34 -42
  112. package/build/src/export/persistMetroAssets.js.map +1 -1
  113. package/build/src/export/publicFolder.js +6 -10
  114. package/build/src/export/publicFolder.js.map +1 -1
  115. package/build/src/export/resolveOptions.js +24 -28
  116. package/build/src/export/resolveOptions.js.map +1 -1
  117. package/build/src/export/saveAssets.js +46 -50
  118. package/build/src/export/saveAssets.js.map +1 -1
  119. package/build/src/export/web/exportWebAsync.js +11 -13
  120. package/build/src/export/web/exportWebAsync.js.map +1 -1
  121. package/build/src/export/web/index.js +15 -19
  122. package/build/src/export/web/index.js.map +1 -1
  123. package/build/src/export/web/resolveOptions.js +3 -5
  124. package/build/src/export/web/resolveOptions.js.map +1 -1
  125. package/build/src/export/writeContents.js +2 -4
  126. package/build/src/export/writeContents.js.map +1 -1
  127. package/build/src/graphql/generated.js +274 -400
  128. package/build/src/graphql/generated.js.map +1 -1
  129. package/build/src/install/applyPlugins.js +7 -11
  130. package/build/src/install/applyPlugins.js.map +1 -1
  131. package/build/src/install/checkPackages.js +22 -26
  132. package/build/src/install/checkPackages.js.map +1 -1
  133. package/build/src/install/fixPackages.js +12 -16
  134. package/build/src/install/fixPackages.js.map +1 -1
  135. package/build/src/install/index.js +16 -18
  136. package/build/src/install/index.js.map +1 -1
  137. package/build/src/install/installAsync.js +26 -32
  138. package/build/src/install/installAsync.js.map +1 -1
  139. package/build/src/install/installExpoPackage.js +18 -22
  140. package/build/src/install/installExpoPackage.js.map +1 -1
  141. package/build/src/install/resolveOptions.js +19 -21
  142. package/build/src/install/resolveOptions.js.map +1 -1
  143. package/build/src/install/utils/autoAddConfigPlugins.js +14 -18
  144. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  145. package/build/src/install/utils/checkPackagesCompatibility.js +11 -13
  146. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
  147. package/build/src/lint/ESlintPrerequisite.js +44 -50
  148. package/build/src/lint/ESlintPrerequisite.js.map +1 -1
  149. package/build/src/lint/index.js +8 -12
  150. package/build/src/lint/index.js.map +1 -1
  151. package/build/src/lint/lintAsync.js +8 -10
  152. package/build/src/lint/lintAsync.js.map +1 -1
  153. package/build/src/log.js +16 -36
  154. package/build/src/log.js.map +1 -1
  155. package/build/src/login/index.js +20 -24
  156. package/build/src/login/index.js.map +1 -1
  157. package/build/src/logout/index.js +7 -11
  158. package/build/src/logout/index.js.map +1 -1
  159. package/build/src/prebuild/clearNativeFolder.js +26 -38
  160. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  161. package/build/src/prebuild/configureProjectAsync.js +14 -18
  162. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  163. package/build/src/prebuild/copyTemplateFiles.js +13 -17
  164. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  165. package/build/src/prebuild/ensureConfigAsync.js +4 -6
  166. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  167. package/build/src/prebuild/index.js +32 -36
  168. package/build/src/prebuild/index.js.map +1 -1
  169. package/build/src/prebuild/prebuildAsync.js +25 -29
  170. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  171. package/build/src/prebuild/renameTemplateAppName.js +40 -46
  172. package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
  173. package/build/src/prebuild/resolveOptions.js +52 -66
  174. package/build/src/prebuild/resolveOptions.js.map +1 -1
  175. package/build/src/prebuild/resolveTemplate.js +32 -36
  176. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  177. package/build/src/prebuild/updateFromTemplate.js +13 -19
  178. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  179. package/build/src/prebuild/updatePackageJson.js +39 -53
  180. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  181. package/build/src/prebuild/validateTemplatePlatforms.js +8 -12
  182. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  183. package/build/src/register/index.js +7 -11
  184. package/build/src/register/index.js.map +1 -1
  185. package/build/src/register/registerAsync.js +3 -5
  186. package/build/src/register/registerAsync.js.map +1 -1
  187. package/build/src/run/android/index.js +32 -36
  188. package/build/src/run/android/index.js.map +1 -1
  189. package/build/src/run/android/resolveDevice.js +8 -10
  190. package/build/src/run/android/resolveDevice.js.map +1 -1
  191. package/build/src/run/android/resolveGradlePropsAsync.js +16 -18
  192. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
  193. package/build/src/run/android/resolveInstallApkName.js +15 -17
  194. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  195. package/build/src/run/android/resolveLaunchProps.js +10 -12
  196. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  197. package/build/src/run/android/resolveOptions.js +2 -4
  198. package/build/src/run/android/resolveOptions.js.map +1 -1
  199. package/build/src/run/android/runAndroidAsync.js +21 -23
  200. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  201. package/build/src/run/ensureNativeProject.js +5 -7
  202. package/build/src/run/ensureNativeProject.js.map +1 -1
  203. package/build/src/run/hints.js +7 -13
  204. package/build/src/run/hints.js.map +1 -1
  205. package/build/src/run/index.js +23 -27
  206. package/build/src/run/index.js.map +1 -1
  207. package/build/src/run/ios/XcodeBuild.js +56 -74
  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 +63 -69
  211. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  212. package/build/src/run/ios/appleDevice/ClientManager.js +26 -29
  213. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  214. package/build/src/run/ios/appleDevice/client/AFCClient.js +25 -28
  215. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  216. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +26 -29
  217. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  218. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -22
  219. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  220. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +29 -32
  221. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  222. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +24 -28
  223. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  224. package/build/src/run/ios/appleDevice/client/ServiceClient.js +4 -7
  225. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
  226. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +27 -28
  227. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  228. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +17 -23
  229. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  230. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +132 -146
  231. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  232. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +21 -29
  233. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  234. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +21 -29
  235. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  236. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +22 -34
  237. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  238. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +17 -27
  239. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  240. package/build/src/run/ios/codeSigning/Security.js +39 -53
  241. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  242. package/build/src/run/ios/codeSigning/configureCodeSigning.js +9 -13
  243. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  244. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +19 -27
  245. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  246. package/build/src/run/ios/codeSigning/settings.js +5 -9
  247. package/build/src/run/ios/codeSigning/settings.js.map +1 -1
  248. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +12 -14
  249. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  250. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +21 -27
  251. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  252. package/build/src/run/ios/index.js +36 -40
  253. package/build/src/run/ios/index.js.map +1 -1
  254. package/build/src/run/ios/launchApp.js +17 -23
  255. package/build/src/run/ios/launchApp.js.map +1 -1
  256. package/build/src/run/ios/options/appleDestinations.js +36 -38
  257. package/build/src/run/ios/options/appleDestinations.js.map +1 -1
  258. package/build/src/run/ios/options/promptDevice.js +16 -20
  259. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  260. package/build/src/run/ios/options/resolveDevice.js +24 -30
  261. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  262. package/build/src/run/ios/options/resolveNativeScheme.js +23 -31
  263. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  264. package/build/src/run/ios/options/resolveOptions.js +5 -7
  265. package/build/src/run/ios/options/resolveOptions.js.map +1 -1
  266. package/build/src/run/ios/options/resolveXcodeProject.js +5 -7
  267. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  268. package/build/src/run/ios/runIosAsync.js +44 -48
  269. package/build/src/run/ios/runIosAsync.js.map +1 -1
  270. package/build/src/run/ios/validateExternalBinary.js +22 -24
  271. package/build/src/run/ios/validateExternalBinary.js.map +1 -1
  272. package/build/src/run/resolveBundlerProps.js +2 -4
  273. package/build/src/run/resolveBundlerProps.js.map +1 -1
  274. package/build/src/run/startBundler.js +12 -16
  275. package/build/src/run/startBundler.js.map +1 -1
  276. package/build/src/serve/index.js +16 -20
  277. package/build/src/serve/index.js.map +1 -1
  278. package/build/src/serve/serveAsync.js +32 -36
  279. package/build/src/serve/serveAsync.js.map +1 -1
  280. package/build/src/start/detectDevClient.js +9 -13
  281. package/build/src/start/detectDevClient.js.map +1 -1
  282. package/build/src/start/doctor/Prerequisite.js +7 -12
  283. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  284. package/build/src/start/doctor/SecurityBinPrerequisite.js +11 -13
  285. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  286. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +19 -23
  287. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  288. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +19 -23
  289. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  290. package/build/src/start/doctor/apple/XcodePrerequisite.js +45 -51
  291. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  292. package/build/src/start/doctor/apple/XcrunPrerequisite.js +16 -18
  293. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  294. package/build/src/start/doctor/dependencies/bundledNativeModules.js +19 -23
  295. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  296. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +25 -31
  297. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  298. package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -25
  299. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  300. package/build/src/start/doctor/dependencies/getVersionedPackages.js +32 -40
  301. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  302. package/build/src/start/doctor/dependencies/resolvePackages.js +26 -32
  303. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  304. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +31 -41
  305. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  306. package/build/src/start/doctor/ngrok/ExternalModule.js +29 -34
  307. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  308. package/build/src/start/doctor/ngrok/NgrokResolver.js +8 -12
  309. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
  310. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +28 -32
  311. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  312. package/build/src/start/doctor/typescript/updateTSConfig.js +17 -23
  313. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  314. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +27 -33
  315. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  316. package/build/src/start/index.js +42 -46
  317. package/build/src/start/index.js.map +1 -1
  318. package/build/src/start/interface/KeyPressHandler.js +14 -18
  319. package/build/src/start/interface/KeyPressHandler.js.map +1 -1
  320. package/build/src/start/interface/commandsTable.js +80 -94
  321. package/build/src/start/interface/commandsTable.js.map +1 -1
  322. package/build/src/start/interface/interactiveActions.js +40 -44
  323. package/build/src/start/interface/interactiveActions.js.map +1 -1
  324. package/build/src/start/interface/startInterface.js +61 -65
  325. package/build/src/start/interface/startInterface.js.map +1 -1
  326. package/build/src/start/platforms/AppIdResolver.js +4 -6
  327. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  328. package/build/src/start/platforms/DeviceManager.js +6 -10
  329. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  330. package/build/src/start/platforms/ExpoGoInstaller.js +20 -25
  331. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  332. package/build/src/start/platforms/PlatformManager.js +15 -17
  333. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  334. package/build/src/start/platforms/android/ADBServer.js +35 -39
  335. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  336. package/build/src/start/platforms/android/AndroidAppIdResolver.js +16 -18
  337. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  338. package/build/src/start/platforms/android/AndroidDeviceManager.js +20 -24
  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 +9 -11
  343. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  344. package/build/src/start/platforms/android/activateWindow.js +22 -26
  345. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  346. package/build/src/start/platforms/android/adb.js +83 -121
  347. package/build/src/start/platforms/android/adb.js.map +1 -1
  348. package/build/src/start/platforms/android/adbReverse.js +12 -20
  349. package/build/src/start/platforms/android/adbReverse.js.map +1 -1
  350. package/build/src/start/platforms/android/emulator.js +26 -36
  351. package/build/src/start/platforms/android/emulator.js.map +1 -1
  352. package/build/src/start/platforms/android/getDevices.js +5 -7
  353. package/build/src/start/platforms/android/getDevices.js.map +1 -1
  354. package/build/src/start/platforms/android/gradle.js +28 -36
  355. package/build/src/start/platforms/android/gradle.js.map +1 -1
  356. package/build/src/start/platforms/android/promptAndroidDevice.js +15 -19
  357. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  358. package/build/src/start/platforms/ios/AppleAppIdResolver.js +19 -21
  359. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  360. package/build/src/start/platforms/ios/AppleDeviceManager.js +31 -37
  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 +7 -9
  365. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  366. package/build/src/start/platforms/ios/devicectl.js +73 -87
  367. package/build/src/start/platforms/ios/devicectl.js.map +1 -1
  368. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +18 -22
  369. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  370. package/build/src/start/platforms/ios/getBestSimulator.js +19 -29
  371. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  372. package/build/src/start/platforms/ios/promptAppleDevice.js +10 -14
  373. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  374. package/build/src/start/platforms/ios/simctl.js +74 -102
  375. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  376. package/build/src/start/platforms/ios/simctlLogging.js +52 -57
  377. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  378. package/build/src/start/platforms/ios/xcrun.js +18 -22
  379. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  380. package/build/src/start/project/devices.js +9 -19
  381. package/build/src/start/project/devices.js.map +1 -1
  382. package/build/src/start/project/dotExpo.js +11 -15
  383. package/build/src/start/project/dotExpo.js.map +1 -1
  384. package/build/src/start/project/settings.js +2 -4
  385. package/build/src/start/project/settings.js.map +1 -1
  386. package/build/src/start/resolveOptions.js +40 -48
  387. package/build/src/start/resolveOptions.js.map +1 -1
  388. package/build/src/start/server/AsyncNgrok.js +51 -55
  389. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  390. package/build/src/start/server/AsyncWsTunnel.js +36 -40
  391. package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
  392. package/build/src/start/server/BundlerDevServer.js +79 -81
  393. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  394. package/build/src/start/server/DevServerManager.js +38 -42
  395. package/build/src/start/server/DevServerManager.js.map +1 -1
  396. package/build/src/start/server/DevToolsPluginManager.js +14 -18
  397. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  398. package/build/src/start/server/DevelopmentSession.js +14 -18
  399. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  400. package/build/src/start/server/ReactDevToolsProxy.js +10 -16
  401. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  402. package/build/src/start/server/UrlCreator.js +33 -36
  403. package/build/src/start/server/UrlCreator.js.map +1 -1
  404. package/build/src/start/server/getStaticRenderFunctions.js +21 -29
  405. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  406. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +4 -6
  407. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
  408. package/build/src/start/server/metro/MetroBundlerDevServer.js +271 -269
  409. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  410. package/build/src/start/server/metro/MetroTerminalReporter.js +56 -63
  411. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  412. package/build/src/start/server/metro/TerminalReporter.js +33 -39
  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/createExpoMetroResolver.js +40 -46
  416. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  417. package/build/src/start/server/metro/createJResolver.js +28 -32
  418. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  419. package/build/src/start/server/metro/createServerComponentsMiddleware.js +92 -96
  420. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  421. package/build/src/start/server/metro/createServerRouteMiddleware.js +30 -32
  422. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  423. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +11 -13
  424. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
  425. package/build/src/start/server/metro/debugging/MessageHandler.js +1 -3
  426. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
  427. package/build/src/start/server/metro/debugging/attachAtlas.js +22 -26
  428. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
  429. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +17 -19
  430. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  431. package/build/src/start/server/metro/debugging/createHandlersFactory.js +31 -25
  432. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
  433. package/build/src/start/server/metro/debugging/getDebuggerType.js +4 -6
  434. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
  435. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +8 -14
  436. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
  437. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +5 -7
  438. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
  439. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +6 -8
  440. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
  441. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +5 -7
  442. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
  443. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +12 -14
  444. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
  445. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +10 -14
  446. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
  447. package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -6
  448. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
  449. package/build/src/start/server/metro/debugging/types.js.map +1 -1
  450. package/build/src/start/server/metro/dev-server/createEventSocket.js +16 -18
  451. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
  452. package/build/src/start/server/metro/dev-server/createMessageSocket.js +21 -23
  453. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
  454. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +21 -23
  455. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  456. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +2 -4
  457. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
  458. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +2 -4
  459. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
  460. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +4 -8
  461. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
  462. package/build/src/start/server/metro/externals.js +25 -33
  463. package/build/src/start/server/metro/externals.js.map +1 -1
  464. package/build/src/start/server/metro/fetchRouterManifest.js +12 -16
  465. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  466. package/build/src/start/server/metro/formatFileCandidates.js +9 -11
  467. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  468. package/build/src/start/server/metro/getCssModulesFromBundler.js +18 -22
  469. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  470. package/build/src/start/server/metro/instantiateMetro.js +79 -85
  471. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  472. package/build/src/start/server/metro/log-box/LogBoxLog.js +36 -40
  473. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
  474. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +14 -20
  475. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  476. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +6 -10
  477. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
  478. package/build/src/start/server/metro/metroErrorInterface.js +78 -88
  479. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  480. package/build/src/start/server/metro/metroErrors.js +4 -8
  481. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  482. package/build/src/start/server/metro/metroPrivateServer.js +7 -9
  483. package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
  484. package/build/src/start/server/metro/metroVirtualModules.js +8 -10
  485. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
  486. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +22 -24
  487. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  488. package/build/src/start/server/metro/router.js +32 -48
  489. package/build/src/start/server/metro/router.js.map +1 -1
  490. package/build/src/start/server/metro/runServer-fork.js +22 -24
  491. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  492. package/build/src/start/server/metro/serializeHtml.js +22 -24
  493. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  494. package/build/src/start/server/metro/symbolicate.js.map +1 -1
  495. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +29 -35
  496. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  497. package/build/src/start/server/metro/withMetroMultiPlatform.js +139 -149
  498. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  499. package/build/src/start/server/metro/withMetroResolvers.js +39 -49
  500. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  501. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +6 -8
  502. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  503. package/build/src/start/server/middleware/CorsMiddleware.js +15 -17
  504. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  505. package/build/src/start/server/middleware/CreateFileMiddleware.js +31 -32
  506. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  507. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +19 -22
  508. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  509. package/build/src/start/server/middleware/DomComponentsMiddleware.js +27 -33
  510. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
  511. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +60 -64
  512. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  513. package/build/src/start/server/middleware/ExpoMiddleware.js +9 -15
  514. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  515. package/build/src/start/server/middleware/FaviconMiddleware.js +14 -15
  516. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  517. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +2 -4
  518. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  519. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +31 -34
  520. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  521. package/build/src/start/server/middleware/ManifestMiddleware.js +56 -64
  522. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  523. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +19 -23
  524. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  525. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +19 -20
  526. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  527. package/build/src/start/server/middleware/ServeStaticMiddleware.js +9 -11
  528. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  529. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +11 -17
  530. package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
  531. package/build/src/start/server/middleware/inspector/CdpClient.js +10 -12
  532. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
  533. package/build/src/start/server/middleware/inspector/JsInspector.js +27 -35
  534. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  535. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +19 -21
  536. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  537. package/build/src/start/server/middleware/inspector/middlwareMutations.js +2 -6
  538. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  539. package/build/src/start/server/middleware/metroOptions.js +96 -120
  540. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  541. package/build/src/start/server/middleware/mutations.js +3 -7
  542. package/build/src/start/server/middleware/mutations.js.map +1 -1
  543. package/build/src/start/server/middleware/resolveAssets.js +18 -26
  544. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  545. package/build/src/start/server/middleware/resolvePlatform.js +15 -23
  546. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  547. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +9 -11
  548. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
  549. package/build/src/start/server/middleware/server.types.js.map +1 -1
  550. package/build/src/start/server/openPlatforms.js +8 -10
  551. package/build/src/start/server/openPlatforms.js.map +1 -1
  552. package/build/src/start/server/platformBundlers.js +11 -13
  553. package/build/src/start/server/platformBundlers.js.map +1 -1
  554. package/build/src/start/server/serverLogLikeMetro.js +50 -58
  555. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  556. package/build/src/start/server/type-generation/expo-env.js +7 -11
  557. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  558. package/build/src/start/server/type-generation/routes.js +54 -76
  559. package/build/src/start/server/type-generation/routes.js.map +1 -1
  560. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +19 -21
  561. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  562. package/build/src/start/server/type-generation/tsconfig.js +28 -36
  563. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  564. package/build/src/start/server/webTemplate.js +24 -28
  565. package/build/src/start/server/webTemplate.js.map +1 -1
  566. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +46 -52
  567. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  568. package/build/src/start/server/webpack/compile.js +11 -15
  569. package/build/src/start/server/webpack/compile.js.map +1 -1
  570. package/build/src/start/server/webpack/formatWebpackMessages.js +26 -28
  571. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  572. package/build/src/start/server/webpack/resolveFromProject.js +12 -18
  573. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  574. package/build/src/start/server/webpack/tls.js +12 -18
  575. package/build/src/start/server/webpack/tls.js.map +1 -1
  576. package/build/src/start/startAsync.js +27 -31
  577. package/build/src/start/startAsync.js.map +1 -1
  578. package/build/src/utils/FileNotifier.js +17 -20
  579. package/build/src/utils/FileNotifier.js.map +1 -1
  580. package/build/src/utils/ansi.js +5 -7
  581. package/build/src/utils/ansi.js.map +1 -1
  582. package/build/src/utils/args.js +14 -24
  583. package/build/src/utils/args.js.map +1 -1
  584. package/build/src/utils/array.js +6 -18
  585. package/build/src/utils/array.js.map +1 -1
  586. package/build/src/utils/cocoapods.js +46 -54
  587. package/build/src/utils/cocoapods.js.map +1 -1
  588. package/build/src/utils/codesigning.js +68 -78
  589. package/build/src/utils/codesigning.js.map +1 -1
  590. package/build/src/utils/createFileTransform.js +12 -16
  591. package/build/src/utils/createFileTransform.js.map +1 -1
  592. package/build/src/utils/createTempPath.js +13 -17
  593. package/build/src/utils/createTempPath.js.map +1 -1
  594. package/build/src/utils/delay.js +6 -12
  595. package/build/src/utils/delay.js.map +1 -1
  596. package/build/src/utils/dir.js +28 -46
  597. package/build/src/utils/dir.js.map +1 -1
  598. package/build/src/utils/downloadAppAsync.js +8 -10
  599. package/build/src/utils/downloadAppAsync.js.map +1 -1
  600. package/build/src/utils/downloadExpoGoAsync.js +21 -25
  601. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  602. package/build/src/utils/editor.js +35 -41
  603. package/build/src/utils/editor.js.map +1 -1
  604. package/build/src/utils/env.js +59 -63
  605. package/build/src/utils/env.js.map +1 -1
  606. package/build/src/utils/errors.js +30 -37
  607. package/build/src/utils/errors.js.map +1 -1
  608. package/build/src/utils/exit.js +31 -35
  609. package/build/src/utils/exit.js.map +1 -1
  610. package/build/src/utils/expoUpdatesCli.js +22 -32
  611. package/build/src/utils/expoUpdatesCli.js.map +1 -1
  612. package/build/src/utils/fetch.js +4 -8
  613. package/build/src/utils/fetch.js.map +1 -1
  614. package/build/src/utils/filePath.js +6 -10
  615. package/build/src/utils/filePath.js.map +1 -1
  616. package/build/src/utils/findUp.js +9 -13
  617. package/build/src/utils/findUp.js.map +1 -1
  618. package/build/src/utils/fn.js +2 -6
  619. package/build/src/utils/fn.js.map +1 -1
  620. package/build/src/utils/getOrPromptApplicationId.js +26 -32
  621. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  622. package/build/src/utils/getRunningProcess.js +21 -29
  623. package/build/src/utils/getRunningProcess.js.map +1 -1
  624. package/build/src/utils/git.js +20 -26
  625. package/build/src/utils/git.js.map +1 -1
  626. package/build/src/utils/glob.js +4 -8
  627. package/build/src/utils/glob.js.map +1 -1
  628. package/build/src/utils/interactive.js +1 -3
  629. package/build/src/utils/interactive.js.map +1 -1
  630. package/build/src/utils/ip.js +19 -21
  631. package/build/src/utils/ip.js.map +1 -1
  632. package/build/src/utils/isModuleSymlinked.js +9 -11
  633. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  634. package/build/src/utils/jsonSchemaDeref.js +18 -20
  635. package/build/src/utils/jsonSchemaDeref.js.map +1 -1
  636. package/build/src/utils/link.js +13 -17
  637. package/build/src/utils/link.js.map +1 -1
  638. package/build/src/utils/mergeGitIgnorePaths.js +28 -46
  639. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  640. package/build/src/utils/modifyConfigAsync.js +10 -16
  641. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  642. package/build/src/utils/modifyConfigPlugins.js +6 -10
  643. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  644. package/build/src/utils/nodeEnv.js +6 -12
  645. package/build/src/utils/nodeEnv.js.map +1 -1
  646. package/build/src/utils/nodeModules.js +8 -10
  647. package/build/src/utils/nodeModules.js.map +1 -1
  648. package/build/src/utils/npm.js +36 -50
  649. package/build/src/utils/npm.js.map +1 -1
  650. package/build/src/utils/obj.js +5 -11
  651. package/build/src/utils/obj.js.map +1 -1
  652. package/build/src/utils/open.js +8 -10
  653. package/build/src/utils/open.js.map +1 -1
  654. package/build/src/utils/ora.js +7 -13
  655. package/build/src/utils/ora.js.map +1 -1
  656. package/build/src/utils/plist.js +15 -21
  657. package/build/src/utils/plist.js.map +1 -1
  658. package/build/src/utils/port.js +33 -43
  659. package/build/src/utils/port.js.map +1 -1
  660. package/build/src/utils/profile.js +7 -11
  661. package/build/src/utils/profile.js.map +1 -1
  662. package/build/src/utils/progress.js +5 -11
  663. package/build/src/utils/progress.js.map +1 -1
  664. package/build/src/utils/prompts.js +29 -47
  665. package/build/src/utils/prompts.js.map +1 -1
  666. package/build/src/utils/resolveArgs.js +24 -36
  667. package/build/src/utils/resolveArgs.js.map +1 -1
  668. package/build/src/utils/scheme.js +32 -40
  669. package/build/src/utils/scheme.js.map +1 -1
  670. package/build/src/utils/stream.js +3 -5
  671. package/build/src/utils/stream.js.map +1 -1
  672. package/build/src/utils/strings.js +4 -6
  673. package/build/src/utils/strings.js.map +1 -1
  674. package/build/src/utils/tar.js +15 -19
  675. package/build/src/utils/tar.js.map +1 -1
  676. package/build/src/utils/telemetry/Telemetry.js +27 -29
  677. package/build/src/utils/telemetry/Telemetry.js.map +1 -1
  678. package/build/src/utils/telemetry/clients/FetchClient.js +13 -15
  679. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
  680. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +22 -26
  681. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
  682. package/build/src/utils/telemetry/clients/RudderClient.js +8 -10
  683. package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
  684. package/build/src/utils/telemetry/clients/RudderDetachedClient.js +22 -26
  685. package/build/src/utils/telemetry/clients/RudderDetachedClient.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/clients/flushRudderDetached.js +10 -10
  689. package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
  690. package/build/src/utils/telemetry/events.js +2 -4
  691. package/build/src/utils/telemetry/events.js.map +1 -1
  692. package/build/src/utils/telemetry/flushDetached.js.map +1 -1
  693. package/build/src/utils/telemetry/index.js +29 -25
  694. package/build/src/utils/telemetry/index.js.map +1 -1
  695. package/build/src/utils/telemetry/types.js.map +1 -1
  696. package/build/src/utils/telemetry/utils/constants.js +4 -8
  697. package/build/src/utils/telemetry/utils/constants.js.map +1 -1
  698. package/build/src/utils/telemetry/utils/context.js +14 -18
  699. package/build/src/utils/telemetry/utils/context.js.map +1 -1
  700. package/build/src/utils/template.js +4 -6
  701. package/build/src/utils/template.js.map +1 -1
  702. package/build/src/utils/terminal.js +2 -4
  703. package/build/src/utils/terminal.js.map +1 -1
  704. package/build/src/utils/tsconfig/evaluateTsConfig.js +17 -21
  705. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  706. package/build/src/utils/tsconfig/loadTsConfigPaths.js +14 -18
  707. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  708. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +5 -7
  709. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  710. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -14
  711. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  712. package/build/src/utils/url.js +13 -23
  713. package/build/src/utils/url.js.map +1 -1
  714. package/build/src/utils/validateApplicationId.js +86 -108
  715. package/build/src/utils/validateApplicationId.js.map +1 -1
  716. package/build/src/utils/variadic.js +16 -22
  717. package/build/src/utils/variadic.js.map +1 -1
  718. package/build/src/whoami/index.js +7 -11
  719. package/build/src/whoami/index.js.map +1 -1
  720. package/build/src/whoami/whoamiAsync.js +7 -11
  721. package/build/src/whoami/whoamiAsync.js.map +1 -1
  722. package/package.json +3 -3
@@ -4,38 +4,36 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "Telemetry", {
6
6
  enumerable: true,
7
- get: function() {
8
- return Telemetry;
9
- }
7
+ get: ()=>Telemetry
10
8
  });
11
- function _nodecrypto() {
12
- const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
13
- _nodecrypto = function() {
9
+ function _nodeCrypto() {
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("node:crypto"));
11
+ _nodeCrypto = function() {
14
12
  return data;
15
13
  };
16
14
  return data;
17
15
  }
18
- const _FetchClient = require("./clients/FetchClient");
19
- const _FetchDetachedClient = require("./clients/FetchDetachedClient");
16
+ const _fetchClient = require("./clients/FetchClient");
17
+ const _fetchDetachedClient = require("./clients/FetchDetachedClient");
20
18
  const _context = require("./utils/context");
21
- const _UserSettings = require("../../api/user/UserSettings");
19
+ const _userSettings = require("../../api/user/UserSettings");
22
20
  const _env = require("../env");
23
- function _interop_require_default(obj) {
21
+ function _interopRequireDefault(obj) {
24
22
  return obj && obj.__esModule ? obj : {
25
23
  default: obj
26
24
  };
27
25
  }
28
- const debug = require('debug')('expo:telemetry');
26
+ const debug = require("debug")("expo:telemetry");
29
27
  class Telemetry {
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 = [];
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" } = {}){
34
32
  this.actor = {
35
33
  anonymousId,
36
34
  sessionId
37
35
  };
38
- this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);
36
+ this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? "debug" : strategy);
39
37
  if (userId) {
40
38
  this.initialize({
41
39
  userId
@@ -49,8 +47,8 @@ class Telemetry {
49
47
  // Abort when client is already using the correct strategy
50
48
  if (this.client.strategy === strategy) return;
51
49
  // Abort when debugging the telemetry
52
- if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;
53
- debug('Switching strategy from %s to %s', this.client.strategy, strategy);
50
+ if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== "debug") return;
51
+ debug("Switching strategy from %s to %s", this.client.strategy, strategy);
54
52
  // Load and instantiate the correct client, based on strategy
55
53
  const client = createClientFromStrategy(strategy);
56
54
  // Replace the client, and re-record any pending records
@@ -63,7 +61,7 @@ class Telemetry {
63
61
  get isInitialized() {
64
62
  return this.actor.userHash !== undefined;
65
63
  }
66
- initialize({ userId }) {
64
+ initialize({ userId }) {
67
65
  this.actor.userHash = userId ? hashUserId(userId) : null;
68
66
  this.flushEarlyRecords();
69
67
  }
@@ -76,7 +74,7 @@ class Telemetry {
76
74
  recordInternal(records) {
77
75
  return this.client.record(records.map((record)=>({
78
76
  ...record,
79
- type: 'track',
77
+ type: "track",
80
78
  sentAt: new Date(),
81
79
  messageId: createMessageId(record),
82
80
  anonymousId: this.actor.anonymousId,
@@ -94,7 +92,7 @@ class Telemetry {
94
92
  const records = Array.isArray(record) ? record : [
95
93
  record
96
94
  ];
97
- debug('Recording %d event(s)', records.length);
95
+ debug("Recording %d event(s)", records.length);
98
96
  if (!this.isInitialized) {
99
97
  this.earlyRecords.push(...records);
100
98
  return;
@@ -102,30 +100,30 @@ class Telemetry {
102
100
  return this.recordInternal(records);
103
101
  }
104
102
  flush() {
105
- debug('Flushing events...');
103
+ debug("Flushing events...");
106
104
  this.flushEarlyRecords();
107
105
  return this.client.flush();
108
106
  }
109
107
  flushOnExit() {
110
- this.setStrategy('detached');
108
+ this.setStrategy("detached");
111
109
  this.flushEarlyRecords();
112
110
  return this.client.flush();
113
111
  }
114
112
  }
115
113
  function createClientFromStrategy(strategy) {
116
114
  // When debugging, use the actual Rudderstack client, but lazy load it
117
- if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {
118
- return new _FetchClient.FetchClient();
115
+ if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === "debug" || strategy === "instant") {
116
+ return new _fetchClient.FetchClient();
119
117
  }
120
- return new _FetchDetachedClient.FetchDetachedClient();
118
+ return new _fetchDetachedClient.FetchDetachedClient();
121
119
  }
122
120
  /** Generate a unique message ID using a random hash and UUID */ function createMessageId(record) {
123
- const uuid = _nodecrypto().default.randomUUID();
124
- const md5 = _nodecrypto().default.createHash('md5').update(JSON.stringify(record)).digest('hex');
121
+ const uuid = _nodeCrypto().default.randomUUID();
122
+ const md5 = _nodeCrypto().default.createHash("md5").update(JSON.stringify(record)).digest("hex");
125
123
  return `node-${md5}-${uuid}`;
126
124
  }
127
125
  /** Hash the user identifier to make it untracable */ function hashUserId(userId) {
128
- return _nodecrypto().default.createHash('sha256').update(userId).digest('hex');
126
+ return _nodeCrypto().default.createHash("sha256").update(userId).digest("hex");
129
127
  }
130
128
 
131
129
  //# 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","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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"}
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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"}
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "FetchClient", {
6
6
  enumerable: true,
7
- get: function() {
8
- return FetchClient;
9
- }
7
+ get: ()=>FetchClient
10
8
  });
11
- function _nodebuffer() {
9
+ function _nodeBuffer() {
12
10
  const data = require("node:buffer");
13
- _nodebuffer = function() {
11
+ _nodeBuffer = function() {
14
12
  return data;
15
13
  };
16
14
  return data;
@@ -25,16 +23,16 @@ function _undici() {
25
23
  const _fetch = require("../../../utils/fetch");
26
24
  const _constants = require("../utils/constants");
27
25
  class FetchClient {
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();
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 } = {}){
31
29
  this.fetch = fetch;
32
30
  this.url = url;
33
31
  this.headers = {
34
- accept: 'application/json',
35
- 'content-type': 'application/json',
36
- 'user-agent': `expo-cli/${"0.22.25"}`,
37
- authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
32
+ accept: "application/json",
33
+ "content-type": "application/json",
34
+ "user-agent": `expo-cli/${"0.22.26"}`,
35
+ authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
38
36
  };
39
37
  }
40
38
  queue(records, controller, request) {
@@ -57,7 +55,7 @@ class FetchClient {
57
55
  });
58
56
  return this.queue(records, controller, this.fetch(this.url, {
59
57
  body,
60
- method: 'POST',
58
+ method: "POST",
61
59
  signal: controller.signal,
62
60
  headers: this.headers
63
61
  }));
@@ -92,8 +90,8 @@ function createTelemetryFetch() {
92
90
  });
93
91
  }
94
92
  /** Extract the URL string from either `RequestInfo` or `URL` */ function extractUrl(info) {
95
- if (typeof info === 'string') return info;
96
- if ('url' in info) return info.url;
93
+ if (typeof info === "string") return info;
94
+ if ("url" in info) return info.url;
97
95
  return info.toString();
98
96
  }
99
97
  /** 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","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"}
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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"}
@@ -4,39 +4,39 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "FetchDetachedClient", {
6
6
  enumerable: true,
7
- get: function() {
8
- return FetchDetachedClient;
9
- }
7
+ get: ()=>FetchDetachedClient
10
8
  });
11
- function _nodechild_process() {
9
+ function _nodeChildProcess() {
12
10
  const data = require("node:child_process");
13
- _nodechild_process = function() {
11
+ _nodeChildProcess = function() {
14
12
  return data;
15
13
  };
16
14
  return data;
17
15
  }
18
- function _nodefs() {
19
- const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
20
- _nodefs = function() {
16
+ function _nodeFs() {
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
18
+ _nodeFs = function() {
21
19
  return data;
22
20
  };
23
21
  return data;
24
22
  }
25
- function _nodepath() {
26
- const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
27
- _nodepath = function() {
23
+ function _nodePath() {
24
+ const data = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
25
+ _nodePath = function() {
28
26
  return data;
29
27
  };
30
28
  return data;
31
29
  }
32
30
  const _createTempPath = require("../../createTempPath");
33
- function _interop_require_default(obj) {
31
+ function _interopRequireDefault(obj) {
34
32
  return obj && obj.__esModule ? obj : {
35
33
  default: obj
36
34
  };
37
35
  }
38
- const debug = require('debug')('expo:telemetry:client:detached');
36
+ const debug = require("debug")("expo:telemetry:client:detached");
39
37
  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,37 +49,33 @@ 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, _nodechild_process().spawn)(process.execPath, [
64
- require.resolve('./flushFetchDetached'),
62
+ await _nodeFs().default.promises.writeFile(file, data);
63
+ const child = (0, _nodeChildProcess().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');
79
- }
80
- constructor(){
81
- /** This client should be used for short-lived commands */ this.strategy = 'detached';
82
- /** All recorded telemetry events */ this.records = [];
78
+ debug("Detached flush started");
83
79
  }
84
80
  }
85
81
 
@@ -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","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"}
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"}
@@ -4,35 +4,33 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "RudderClient", {
6
6
  enumerable: true,
7
- get: function() {
8
- return RudderClient;
9
- }
7
+ get: ()=>RudderClient
10
8
  });
11
- function _ruddersdknode() {
12
- const data = /*#__PURE__*/ _interop_require_default(require("@expo/rudder-sdk-node"));
13
- _ruddersdknode = function() {
9
+ function _rudderSdkNode() {
10
+ const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/rudder-sdk-node"));
11
+ _rudderSdkNode = function() {
14
12
  return data;
15
13
  };
16
14
  return data;
17
15
  }
18
16
  const _constants = require("../utils/constants");
19
- function _interop_require_default(obj) {
17
+ function _interopRequireDefault(obj) {
20
18
  return obj && obj.__esModule ? obj : {
21
19
  default: obj
22
20
  };
23
21
  }
24
22
  class RudderClient {
23
+ /** This client should only be used in debug mode, or in the detached script */ strategy = "debug";
25
24
  constructor(sdk){
26
- /** This client should only be used in debug mode, or in the detached script */ this.strategy = 'debug';
27
25
  if (!sdk) {
28
- sdk = new (_ruddersdknode()).default(_constants.TELEMETRY_TARGET, _constants.TELEMETRY_ENDPOINT, {
26
+ sdk = new (_rudderSdkNode()).default(_constants.TELEMETRY_TARGET, _constants.TELEMETRY_ENDPOINT, {
29
27
  flushInterval: 300
30
28
  });
31
29
  }
32
30
  this.rudderstack = sdk;
33
31
  }
34
32
  abort() {
35
- throw new Error('Cannot abort Rudderstack client records');
33
+ throw new Error("Cannot abort Rudderstack client records");
36
34
  }
37
35
  async record(records) {
38
36
  await Promise.all(records.map((record)=>this.rudderstack.track(record)));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\n\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\nexport class RudderClient implements TelemetryClient {\n /** This client should only be used in debug mode, or in the detached script */\n readonly strategy: TelemetryClientStrategy = 'debug';\n /** The RudderStack SDK instance */\n private rudderstack: RudderAnalytics;\n\n constructor(sdk?: RudderAnalytics) {\n if (!sdk) {\n sdk = new RudderAnalytics(TELEMETRY_TARGET, TELEMETRY_ENDPOINT, {\n flushInterval: 300,\n });\n }\n\n this.rudderstack = sdk;\n }\n\n abort(): TelemetryRecordInternal[] {\n throw new Error('Cannot abort Rudderstack client records');\n }\n\n async record(records: TelemetryRecordInternal[]) {\n await Promise.all(records.map((record) => this.rudderstack.track(record)));\n }\n\n async flush() {\n await this.rudderstack.flush();\n }\n}\n"],"names":["RudderClient","constructor","sdk","strategy","RudderAnalytics","TELEMETRY_TARGET","TELEMETRY_ENDPOINT","flushInterval","rudderstack","abort","Error","record","records","Promise","all","map","track","flush"],"mappings":";;;;+BAKaA;;;eAAAA;;;;gEALe;;;;;;2BAGyB;;;;;;AAE9C,MAAMA;IAMXC,YAAYC,GAAqB,CAAE;QALnC,6EAA6E,QACpEC,WAAoC;QAK3C,IAAI,CAACD,KAAK;YACRA,MAAM,IAAIE,CAAAA,gBAAc,SAAC,CAACC,2BAAgB,EAAEC,6BAAkB,EAAE;gBAC9DC,eAAe;YACjB;QACF;QAEA,IAAI,CAACC,WAAW,GAAGN;IACrB;IAEAO,QAAmC;QACjC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,OAAOC,OAAkC,EAAE;QAC/C,MAAMC,QAAQC,GAAG,CAACF,QAAQG,GAAG,CAAC,CAACJ,SAAW,IAAI,CAACH,WAAW,CAACQ,KAAK,CAACL;IACnE;IAEA,MAAMM,QAAQ;QACZ,MAAM,IAAI,CAACT,WAAW,CAACS,KAAK;IAC9B;AACF"}
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\n\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\nexport class RudderClient implements TelemetryClient {\n /** This client should only be used in debug mode, or in the detached script */\n readonly strategy: TelemetryClientStrategy = 'debug';\n /** The RudderStack SDK instance */\n private rudderstack: RudderAnalytics;\n\n constructor(sdk?: RudderAnalytics) {\n if (!sdk) {\n sdk = new RudderAnalytics(TELEMETRY_TARGET, TELEMETRY_ENDPOINT, {\n flushInterval: 300,\n });\n }\n\n this.rudderstack = sdk;\n }\n\n abort(): TelemetryRecordInternal[] {\n throw new Error('Cannot abort Rudderstack client records');\n }\n\n async record(records: TelemetryRecordInternal[]) {\n await Promise.all(records.map((record) => this.rudderstack.track(record)));\n }\n\n async flush() {\n await this.rudderstack.flush();\n }\n}\n"],"names":["RudderClient","strategy","constructor","sdk","RudderAnalytics","TELEMETRY_TARGET","TELEMETRY_ENDPOINT","flushInterval","rudderstack","abort","Error","record","records","Promise","all","map","track","flush"],"mappings":"AAAA;;;;+BAKaA,cAAY;;aAAZA,YAAY;;;8DALG,uBAAuB;;;;;;2BAGE,oBAAoB;;;;;;AAElE,MAAMA,YAAY;IACvB,6EAA6E,GAC7E,AAASC,QAAQ,GAA4B,OAAO,CAAC;IAIrDC,YAAYC,GAAqB,CAAE;QACjC,IAAI,CAACA,GAAG,EAAE;YACRA,GAAG,GAAG,IAAIC,CAAAA,cAAe,EAAA,CAAA,QAAA,CAACC,UAAgB,iBAAA,EAAEC,UAAkB,mBAAA,EAAE;gBAC9DC,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAACC,WAAW,GAAGL,GAAG,CAAC;IACzB;IAEAM,KAAK,GAA8B;QACjC,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D;UAEMC,MAAM,CAACC,OAAkC,EAAE;QAC/C,MAAMC,OAAO,CAACC,GAAG,CAACF,OAAO,CAACG,GAAG,CAAC,CAACJ,MAAM,GAAK,IAAI,CAACH,WAAW,CAACQ,KAAK,CAACL,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7E;UAEMM,KAAK,GAAG;QACZ,MAAM,IAAI,CAACT,WAAW,CAACS,KAAK,EAAE,CAAC;IACjC;CACD"}
@@ -4,39 +4,39 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  Object.defineProperty(exports, "RudderDetachedClient", {
6
6
  enumerable: true,
7
- get: function() {
8
- return RudderDetachedClient;
9
- }
7
+ get: ()=>RudderDetachedClient
10
8
  });
11
- function _nodechild_process() {
9
+ function _nodeChildProcess() {
12
10
  const data = require("node:child_process");
13
- _nodechild_process = function() {
11
+ _nodeChildProcess = function() {
14
12
  return data;
15
13
  };
16
14
  return data;
17
15
  }
18
- function _nodefs() {
19
- const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
20
- _nodefs = function() {
16
+ function _nodeFs() {
17
+ const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
18
+ _nodeFs = function() {
21
19
  return data;
22
20
  };
23
21
  return data;
24
22
  }
25
- function _nodepath() {
26
- const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
27
- _nodepath = function() {
23
+ function _nodePath() {
24
+ const data = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
25
+ _nodePath = function() {
28
26
  return data;
29
27
  };
30
28
  return data;
31
29
  }
32
30
  const _createTempPath = require("../../createTempPath");
33
- function _interop_require_default(obj) {
31
+ function _interopRequireDefault(obj) {
34
32
  return obj && obj.__esModule ? obj : {
35
33
  default: obj
36
34
  };
37
35
  }
38
- const debug = require('debug')('expo:telemetry:client:detached');
36
+ const debug = require("debug")("expo:telemetry:client:detached");
39
37
  class RudderDetachedClient {
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,37 +49,33 @@ class RudderDetachedClient {
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, _nodechild_process().spawn)(process.execPath, [
64
- require.resolve('./flushRudderDetached'),
62
+ await _nodeFs().default.promises.writeFile(file, data);
63
+ const child = (0, _nodeChildProcess().spawn)(process.execPath, [
64
+ require.resolve("./flushRudderDetached"),
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');
79
- }
80
- constructor(){
81
- /** This client should be used for short-lived commands */ this.strategy = 'detached';
82
- /** All recorded telemetry events */ this.records = [];
78
+ debug("Detached flush started");
83
79
  }
84
80
  }
85
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderDetachedClient.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 RudderDetachedClient 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('./flushRudderDetached'), 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":["RudderDetachedClient","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;gBAA0BhB;aAAK,EAAE;gBACtFiB,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"}
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderDetachedClient.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 RudderDetachedClient 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('./flushRudderDetached'), 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":["RudderDetachedClient","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,sBAAoB;;aAApBA,oBAAoB;;;yBATX,oBAAoB;;;;;;;8DAC3B,SAAS;;;;;;;8DACP,WAAW;;;;;;gCAEO,sBAAsB;;;;;;AAGzD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAAC,AAAsB,AAAC;AAEhF,MAAMF,oBAAoB;IAC/B,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,uBAAuB,CAAC;gBAAEhB,IAAI;aAAC,EAAE;gBACtFiB,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"}