@depup/expo__cli 55.0.16-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/README.md +55 -0
  2. package/add-module.js +8 -0
  3. package/build/bin/cli +278 -0
  4. package/build/bin/cli.map +1 -0
  5. package/build/metro-require/require.js +608 -0
  6. package/build/src/api/endpoint.js +39 -0
  7. package/build/src/api/endpoint.js.map +1 -0
  8. package/build/src/api/getExpoGoIntermediateCertificate.js +23 -0
  9. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
  10. package/build/src/api/getExpoSchema.js +97 -0
  11. package/build/src/api/getExpoSchema.js.map +1 -0
  12. package/build/src/api/getNativeModuleVersions.js +37 -0
  13. package/build/src/api/getNativeModuleVersions.js.map +1 -0
  14. package/build/src/api/getProjectDevelopmentCertificate.js +26 -0
  15. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
  16. package/build/src/api/getVersions.js +29 -0
  17. package/build/src/api/getVersions.js.map +1 -0
  18. package/build/src/api/graphql/client.js +204 -0
  19. package/build/src/api/graphql/client.js.map +1 -0
  20. package/build/src/api/graphql/queries/AppQuery.js +40 -0
  21. package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
  22. package/build/src/api/graphql/queries/UserQuery.js +63 -0
  23. package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +184 -0
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -0
  26. package/build/src/api/rest/cache/ResponseCache.js +116 -0
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -0
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +76 -0
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
  30. package/build/src/api/rest/client.js +168 -0
  31. package/build/src/api/rest/client.js.map +1 -0
  32. package/build/src/api/rest/client.types.js +6 -0
  33. package/build/src/api/rest/client.types.js.map +1 -0
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js +32 -0
  35. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
  36. package/build/src/api/rest/wrapFetchWithOffline.js +26 -0
  37. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
  38. package/build/src/api/rest/wrapFetchWithProgress.js +108 -0
  39. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
  40. package/build/src/api/rest/wrapFetchWithUserAgent.js +34 -0
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -0
  42. package/build/src/api/settings.js +33 -0
  43. package/build/src/api/settings.js.map +1 -0
  44. package/build/src/api/updateDevelopmentSession.js +100 -0
  45. package/build/src/api/updateDevelopmentSession.js.map +1 -0
  46. package/build/src/api/user/UserSettings.js +183 -0
  47. package/build/src/api/user/UserSettings.js.map +1 -0
  48. package/build/src/api/user/actions.js +167 -0
  49. package/build/src/api/user/actions.js.map +1 -0
  50. package/build/src/api/user/expoSsoLauncher.js +149 -0
  51. package/build/src/api/user/expoSsoLauncher.js.map +1 -0
  52. package/build/src/api/user/otp.js +177 -0
  53. package/build/src/api/user/otp.js.map +1 -0
  54. package/build/src/api/user/user.js +154 -0
  55. package/build/src/api/user/user.js.map +1 -0
  56. package/build/src/config/configAsync.js +180 -0
  57. package/build/src/config/configAsync.js.map +1 -0
  58. package/build/src/config/index.js +101 -0
  59. package/build/src/config/index.js.map +1 -0
  60. package/build/src/customize/customizeAsync.js +57 -0
  61. package/build/src/customize/customizeAsync.js.map +1 -0
  62. package/build/src/customize/generate.js +94 -0
  63. package/build/src/customize/generate.js.map +1 -0
  64. package/build/src/customize/index.js +51 -0
  65. package/build/src/customize/index.js.map +1 -0
  66. package/build/src/customize/resolveOptions.js +23 -0
  67. package/build/src/customize/resolveOptions.js.map +1 -0
  68. package/build/src/customize/templates.js +189 -0
  69. package/build/src/customize/templates.js.map +1 -0
  70. package/build/src/customize/typescript.js +81 -0
  71. package/build/src/customize/typescript.js.map +1 -0
  72. package/build/src/events/builder.js +6 -0
  73. package/build/src/events/builder.js.map +1 -0
  74. package/build/src/events/index.js +132 -0
  75. package/build/src/events/index.js.map +1 -0
  76. package/build/src/events/stream.js +303 -0
  77. package/build/src/events/stream.js.map +1 -0
  78. package/build/src/events/types.js +6 -0
  79. package/build/src/events/types.js.map +1 -0
  80. package/build/src/expoUpdatesExports.js +28 -0
  81. package/build/src/expoUpdatesExports.js.map +1 -0
  82. package/build/src/export/createMetadataJson.js +55 -0
  83. package/build/src/export/createMetadataJson.js.map +1 -0
  84. package/build/src/export/embed/exportEager.js +33 -0
  85. package/build/src/export/embed/exportEager.js.map +1 -0
  86. package/build/src/export/embed/exportEmbedAsync.js +457 -0
  87. package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
  88. package/build/src/export/embed/exportServer.js +353 -0
  89. package/build/src/export/embed/exportServer.js.map +1 -0
  90. package/build/src/export/embed/index.js +161 -0
  91. package/build/src/export/embed/index.js.map +1 -0
  92. package/build/src/export/embed/resolveOptions.js +159 -0
  93. package/build/src/export/embed/resolveOptions.js.map +1 -0
  94. package/build/src/export/embed/xcodeCompilerLogger.js +148 -0
  95. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
  96. package/build/src/export/exportApp.js +387 -0
  97. package/build/src/export/exportApp.js.map +1 -0
  98. package/build/src/export/exportAssets.js +245 -0
  99. package/build/src/export/exportAssets.js.map +1 -0
  100. package/build/src/export/exportAsync.js +103 -0
  101. package/build/src/export/exportAsync.js.map +1 -0
  102. package/build/src/export/exportDomComponents.js +185 -0
  103. package/build/src/export/exportDomComponents.js.map +1 -0
  104. package/build/src/export/exportHermes.js +251 -0
  105. package/build/src/export/exportHermes.js.map +1 -0
  106. package/build/src/export/exportStaticAsync.js +623 -0
  107. package/build/src/export/exportStaticAsync.js.map +1 -0
  108. package/build/src/export/favicon.js +138 -0
  109. package/build/src/export/favicon.js.map +1 -0
  110. package/build/src/export/getPublicExpoManifest.js +39 -0
  111. package/build/src/export/getPublicExpoManifest.js.map +1 -0
  112. package/build/src/export/getResolvedLocales.js +52 -0
  113. package/build/src/export/getResolvedLocales.js.map +1 -0
  114. package/build/src/export/html.js +33 -0
  115. package/build/src/export/html.js.map +1 -0
  116. package/build/src/export/index.js +146 -0
  117. package/build/src/export/index.js.map +1 -0
  118. package/build/src/export/metroAssetLocalPath.js +130 -0
  119. package/build/src/export/metroAssetLocalPath.js.map +1 -0
  120. package/build/src/export/persistMetroAssets.js +269 -0
  121. package/build/src/export/persistMetroAssets.js.map +1 -0
  122. package/build/src/export/publicFolder.js +61 -0
  123. package/build/src/export/publicFolder.js.map +1 -0
  124. package/build/src/export/resolveOptions.js +92 -0
  125. package/build/src/export/resolveOptions.js.map +1 -0
  126. package/build/src/export/saveAssets.js +273 -0
  127. package/build/src/export/saveAssets.js.map +1 -0
  128. package/build/src/export/web/exportWebAsync.js +57 -0
  129. package/build/src/export/web/exportWebAsync.js.map +1 -0
  130. package/build/src/export/web/index.js +92 -0
  131. package/build/src/export/web/index.js.map +1 -0
  132. package/build/src/export/web/resolveOptions.js +18 -0
  133. package/build/src/export/web/resolveOptions.js.map +1 -0
  134. package/build/src/export/writeContents.js +19 -0
  135. package/build/src/export/writeContents.js.map +1 -0
  136. package/build/src/install/applyPlugins.js +81 -0
  137. package/build/src/install/applyPlugins.js.map +1 -0
  138. package/build/src/install/checkPackages.js +157 -0
  139. package/build/src/install/checkPackages.js.map +1 -0
  140. package/build/src/install/fixPackages.js +111 -0
  141. package/build/src/install/fixPackages.js.map +1 -0
  142. package/build/src/install/index.js +64 -0
  143. package/build/src/install/index.js.map +1 -0
  144. package/build/src/install/installAsync.js +203 -0
  145. package/build/src/install/installAsync.js.map +1 -0
  146. package/build/src/install/installExpoPackage.js +124 -0
  147. package/build/src/install/installExpoPackage.js.map +1 -0
  148. package/build/src/install/resolveOptions.js +65 -0
  149. package/build/src/install/resolveOptions.js.map +1 -0
  150. package/build/src/install/utils/autoAddConfigPlugins.js +90 -0
  151. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
  152. package/build/src/install/utils/checkPackagesCompatibility.js +66 -0
  153. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -0
  154. package/build/src/install/utils/parsePackageSpecifier.js +24 -0
  155. package/build/src/install/utils/parsePackageSpecifier.js.map +1 -0
  156. package/build/src/lint/ESlintPrerequisite.js +163 -0
  157. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  158. package/build/src/lint/index.js +68 -0
  159. package/build/src/lint/index.js.map +1 -0
  160. package/build/src/lint/lintAsync.js +183 -0
  161. package/build/src/lint/lintAsync.js.map +1 -0
  162. package/build/src/lint/resolveOptions.js +115 -0
  163. package/build/src/lint/resolveOptions.js.map +1 -0
  164. package/build/src/log.js +106 -0
  165. package/build/src/log.js.map +1 -0
  166. package/build/src/login/index.js +92 -0
  167. package/build/src/login/index.js.map +1 -0
  168. package/build/src/logout/index.js +70 -0
  169. package/build/src/logout/index.js.map +1 -0
  170. package/build/src/prebuild/clearNativeFolder.js +202 -0
  171. package/build/src/prebuild/clearNativeFolder.js.map +1 -0
  172. package/build/src/prebuild/configureProjectAsync.js +106 -0
  173. package/build/src/prebuild/configureProjectAsync.js.map +1 -0
  174. package/build/src/prebuild/copyTemplateFiles.js +95 -0
  175. package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
  176. package/build/src/prebuild/ensureConfigAsync.js +32 -0
  177. package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
  178. package/build/src/prebuild/index.js +122 -0
  179. package/build/src/prebuild/index.js.map +1 -0
  180. package/build/src/prebuild/prebuildAsync.js +192 -0
  181. package/build/src/prebuild/prebuildAsync.js.map +1 -0
  182. package/build/src/prebuild/renameTemplateAppName.js +135 -0
  183. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  184. package/build/src/prebuild/resolveLocalTemplate.js +72 -0
  185. package/build/src/prebuild/resolveLocalTemplate.js.map +1 -0
  186. package/build/src/prebuild/resolveOptions.js +222 -0
  187. package/build/src/prebuild/resolveOptions.js.map +1 -0
  188. package/build/src/prebuild/resolveTemplate.js +216 -0
  189. package/build/src/prebuild/resolveTemplate.js.map +1 -0
  190. package/build/src/prebuild/updateFromTemplate.js +148 -0
  191. package/build/src/prebuild/updateFromTemplate.js.map +1 -0
  192. package/build/src/prebuild/updatePackageJson.js +305 -0
  193. package/build/src/prebuild/updatePackageJson.js.map +1 -0
  194. package/build/src/prebuild/validateTemplatePlatforms.js +85 -0
  195. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
  196. package/build/src/register/index.js +70 -0
  197. package/build/src/register/index.js.map +1 -0
  198. package/build/src/register/registerAsync.js +39 -0
  199. package/build/src/register/registerAsync.js.map +1 -0
  200. package/build/src/run/android/index.js +139 -0
  201. package/build/src/run/android/index.js.map +1 -0
  202. package/build/src/run/android/resolveDevice.js +28 -0
  203. package/build/src/run/android/resolveDevice.js.map +1 -0
  204. package/build/src/run/android/resolveGradlePropsAsync.js +82 -0
  205. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  206. package/build/src/run/android/resolveInstallApkName.js +67 -0
  207. package/build/src/run/android/resolveInstallApkName.js.map +1 -0
  208. package/build/src/run/android/resolveLaunchProps.js +44 -0
  209. package/build/src/run/android/resolveLaunchProps.js.map +1 -0
  210. package/build/src/run/android/resolveOptions.js +43 -0
  211. package/build/src/run/android/resolveOptions.js.map +1 -0
  212. package/build/src/run/android/runAndroidAsync.js +157 -0
  213. package/build/src/run/android/runAndroidAsync.js.map +1 -0
  214. package/build/src/run/ensureNativeProject.js +53 -0
  215. package/build/src/run/ensureNativeProject.js.map +1 -0
  216. package/build/src/run/hints.js +46 -0
  217. package/build/src/run/hints.js.map +1 -0
  218. package/build/src/run/index.js +124 -0
  219. package/build/src/run/index.js.map +1 -0
  220. package/build/src/run/ios/XcodeBuild.js +382 -0
  221. package/build/src/run/ios/XcodeBuild.js.map +1 -0
  222. package/build/src/run/ios/XcodeBuild.types.js +6 -0
  223. package/build/src/run/ios/XcodeBuild.types.js.map +1 -0
  224. package/build/src/run/ios/appleDevice/AppleDevice.js +316 -0
  225. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -0
  226. package/build/src/run/ios/appleDevice/ClientManager.js +207 -0
  227. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -0
  228. package/build/src/run/ios/appleDevice/client/AFCClient.js +248 -0
  229. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -0
  230. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +149 -0
  231. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -0
  232. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +113 -0
  233. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -0
  234. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +186 -0
  235. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -0
  236. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +133 -0
  237. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -0
  238. package/build/src/run/ios/appleDevice/client/ServiceClient.js +38 -0
  239. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -0
  240. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +146 -0
  241. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -0
  242. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +153 -0
  243. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -0
  244. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +365 -0
  245. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -0
  246. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +167 -0
  247. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -0
  248. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +153 -0
  249. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -0
  250. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +111 -0
  251. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -0
  252. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +100 -0
  253. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -0
  254. package/build/src/run/ios/codeSigning/Security.js +116 -0
  255. package/build/src/run/ios/codeSigning/Security.js.map +1 -0
  256. package/build/src/run/ios/codeSigning/configureCodeSigning.js +108 -0
  257. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -0
  258. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +165 -0
  259. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -0
  260. package/build/src/run/ios/codeSigning/settings.js +27 -0
  261. package/build/src/run/ios/codeSigning/settings.js.map +1 -0
  262. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +67 -0
  263. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -0
  264. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +103 -0
  265. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -0
  266. package/build/src/run/ios/index.js +137 -0
  267. package/build/src/run/ios/index.js.map +1 -0
  268. package/build/src/run/ios/launchApp.js +142 -0
  269. package/build/src/run/ios/launchApp.js.map +1 -0
  270. package/build/src/run/ios/options/appleDestinations.js +126 -0
  271. package/build/src/run/ios/options/appleDestinations.js.map +1 -0
  272. package/build/src/run/ios/options/promptDevice.js +64 -0
  273. package/build/src/run/ios/options/promptDevice.js.map +1 -0
  274. package/build/src/run/ios/options/resolveDevice.js +151 -0
  275. package/build/src/run/ios/options/resolveDevice.js.map +1 -0
  276. package/build/src/run/ios/options/resolveNativeScheme.js +147 -0
  277. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -0
  278. package/build/src/run/ios/options/resolveOptions.js +66 -0
  279. package/build/src/run/ios/options/resolveOptions.js.map +1 -0
  280. package/build/src/run/ios/options/resolveXcodeProject.js +50 -0
  281. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -0
  282. package/build/src/run/ios/runIosAsync.js +255 -0
  283. package/build/src/run/ios/runIosAsync.js.map +1 -0
  284. package/build/src/run/ios/validateExternalBinary.js +113 -0
  285. package/build/src/run/ios/validateExternalBinary.js.map +1 -0
  286. package/build/src/run/resolveBundlerProps.js +38 -0
  287. package/build/src/run/resolveBundlerProps.js.map +1 -0
  288. package/build/src/run/startBundler.js +119 -0
  289. package/build/src/run/startBundler.js.map +1 -0
  290. package/build/src/serve/index.js +95 -0
  291. package/build/src/serve/index.js.map +1 -0
  292. package/build/src/serve/serveAsync.js +227 -0
  293. package/build/src/serve/serveAsync.js.map +1 -0
  294. package/build/src/start/detectDevClient.js +53 -0
  295. package/build/src/start/detectDevClient.js.map +1 -0
  296. package/build/src/start/doctor/Prerequisite.js +60 -0
  297. package/build/src/start/doctor/Prerequisite.js.map +1 -0
  298. package/build/src/start/doctor/SecurityBinPrerequisite.js +38 -0
  299. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -0
  300. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +144 -0
  301. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
  302. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +106 -0
  303. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -0
  304. package/build/src/start/doctor/apple/XcodePrerequisite.js +239 -0
  305. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
  306. package/build/src/start/doctor/apple/XcrunPrerequisite.js +88 -0
  307. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
  308. package/build/src/start/doctor/dependencies/bundledNativeModules.js +112 -0
  309. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
  310. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +192 -0
  311. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
  312. package/build/src/start/doctor/dependencies/getMissingPackages.js +108 -0
  313. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
  314. package/build/src/start/doctor/dependencies/getVersionedPackages.js +165 -0
  315. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
  316. package/build/src/start/doctor/dependencies/resolvePackages.js +95 -0
  317. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -0
  318. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +262 -0
  319. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
  320. package/build/src/start/doctor/ngrok/ExternalModule.js +214 -0
  321. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
  322. package/build/src/start/doctor/ngrok/NgrokResolver.js +33 -0
  323. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
  324. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +205 -0
  325. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
  326. package/build/src/start/doctor/typescript/updateTSConfig.js +144 -0
  327. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
  328. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +164 -0
  329. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
  330. package/build/src/start/index.js +151 -0
  331. package/build/src/start/index.js.map +1 -0
  332. package/build/src/start/interface/KeyPressHandler.js +126 -0
  333. package/build/src/start/interface/KeyPressHandler.js.map +1 -0
  334. package/build/src/start/interface/cliExtensionMenuItemHandler.js +173 -0
  335. package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -0
  336. package/build/src/start/interface/commandsTable.js +273 -0
  337. package/build/src/start/interface/commandsTable.js.map +1 -0
  338. package/build/src/start/interface/createDevToolsMenuItems.js +159 -0
  339. package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -0
  340. package/build/src/start/interface/interactiveActions.js +225 -0
  341. package/build/src/start/interface/interactiveActions.js.map +1 -0
  342. package/build/src/start/interface/startInterface.js +261 -0
  343. package/build/src/start/interface/startInterface.js.map +1 -0
  344. package/build/src/start/platforms/AppIdResolver.js +55 -0
  345. package/build/src/start/platforms/AppIdResolver.js.map +1 -0
  346. package/build/src/start/platforms/DeviceManager.js +74 -0
  347. package/build/src/start/platforms/DeviceManager.js.map +1 -0
  348. package/build/src/start/platforms/ExpoGoInstaller.js +167 -0
  349. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
  350. package/build/src/start/platforms/PlatformManager.js +149 -0
  351. package/build/src/start/platforms/PlatformManager.js.map +1 -0
  352. package/build/src/start/platforms/android/ADBServer.js +139 -0
  353. package/build/src/start/platforms/android/ADBServer.js.map +1 -0
  354. package/build/src/start/platforms/android/AndroidAppIdResolver.js +54 -0
  355. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
  356. package/build/src/start/platforms/android/AndroidDeviceManager.js +216 -0
  357. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
  358. package/build/src/start/platforms/android/AndroidPlatformManager.js +80 -0
  359. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
  360. package/build/src/start/platforms/android/AndroidSdk.js +79 -0
  361. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
  362. package/build/src/start/platforms/android/activateWindow.js +117 -0
  363. package/build/src/start/platforms/android/activateWindow.js.map +1 -0
  364. package/build/src/start/platforms/android/adb.js +367 -0
  365. package/build/src/start/platforms/android/adb.js.map +1 -0
  366. package/build/src/start/platforms/android/adbReverse.js +129 -0
  367. package/build/src/start/platforms/android/adbReverse.js.map +1 -0
  368. package/build/src/start/platforms/android/emulator.js +185 -0
  369. package/build/src/start/platforms/android/emulator.js.map +1 -0
  370. package/build/src/start/platforms/android/getDevices.js +39 -0
  371. package/build/src/start/platforms/android/getDevices.js.map +1 -0
  372. package/build/src/start/platforms/android/gradle.js +125 -0
  373. package/build/src/start/platforms/android/gradle.js.map +1 -0
  374. package/build/src/start/platforms/android/promptAndroidDevice.js +82 -0
  375. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
  376. package/build/src/start/platforms/ios/AppleAppIdResolver.js +76 -0
  377. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
  378. package/build/src/start/platforms/ios/AppleDeviceManager.js +283 -0
  379. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
  380. package/build/src/start/platforms/ios/ApplePlatformManager.js +34 -0
  381. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
  382. package/build/src/start/platforms/ios/assertSystemRequirements.js +22 -0
  383. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
  384. package/build/src/start/platforms/ios/devicectl.js +398 -0
  385. package/build/src/start/platforms/ios/devicectl.js.map +1 -0
  386. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +122 -0
  387. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
  388. package/build/src/start/platforms/ios/getBestSimulator.js +148 -0
  389. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
  390. package/build/src/start/platforms/ios/promptAppleDevice.js +72 -0
  391. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
  392. package/build/src/start/platforms/ios/simctl.js +386 -0
  393. package/build/src/start/platforms/ios/simctl.js.map +1 -0
  394. package/build/src/start/platforms/ios/simctlLogging.js +276 -0
  395. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -0
  396. package/build/src/start/platforms/ios/xcrun.js +74 -0
  397. package/build/src/start/platforms/ios/xcrun.js.map +1 -0
  398. package/build/src/start/project/devices.js +92 -0
  399. package/build/src/start/project/devices.js.map +1 -0
  400. package/build/src/start/project/dotExpo.js +109 -0
  401. package/build/src/start/project/dotExpo.js.map +1 -0
  402. package/build/src/start/project/settings.js +17 -0
  403. package/build/src/start/project/settings.js.map +1 -0
  404. package/build/src/start/resolveOptions.js +173 -0
  405. package/build/src/start/resolveOptions.js.map +1 -0
  406. package/build/src/start/server/AsyncNgrok.js +269 -0
  407. package/build/src/start/server/AsyncNgrok.js.map +1 -0
  408. package/build/src/start/server/AsyncWsTunnel.js +156 -0
  409. package/build/src/start/server/AsyncWsTunnel.js.map +1 -0
  410. package/build/src/start/server/Bonjour.js +103 -0
  411. package/build/src/start/server/Bonjour.js.map +1 -0
  412. package/build/src/start/server/BundlerDevServer.js +410 -0
  413. package/build/src/start/server/BundlerDevServer.js.map +1 -0
  414. package/build/src/start/server/DevServerManager.js +259 -0
  415. package/build/src/start/server/DevServerManager.js.map +1 -0
  416. package/build/src/start/server/DevToolsPlugin.js +60 -0
  417. package/build/src/start/server/DevToolsPlugin.js.map +1 -0
  418. package/build/src/start/server/DevToolsPlugin.schema.js +79 -0
  419. package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -0
  420. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +119 -0
  421. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -0
  422. package/build/src/start/server/DevToolsPluginCliExtensionResults.js +61 -0
  423. package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -0
  424. package/build/src/start/server/DevToolsPluginManager.js +60 -0
  425. package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
  426. package/build/src/start/server/DevelopmentSession.js +132 -0
  427. package/build/src/start/server/DevelopmentSession.js.map +1 -0
  428. package/build/src/start/server/MCP.js +106 -0
  429. package/build/src/start/server/MCP.js.map +1 -0
  430. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +86 -0
  431. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -0
  432. package/build/src/start/server/UrlCreator.js +219 -0
  433. package/build/src/start/server/UrlCreator.js.map +1 -0
  434. package/build/src/start/server/createMCPDevToolsExtensionSchema.js +67 -0
  435. package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -0
  436. package/build/src/start/server/getStaticRenderFunctions.js +171 -0
  437. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
  438. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +39 -0
  439. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -0
  440. package/build/src/start/server/metro/MetroBundlerDevServer.js +1654 -0
  441. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
  442. package/build/src/start/server/metro/MetroTerminalReporter.js +438 -0
  443. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
  444. package/build/src/start/server/metro/TerminalReporter.js +180 -0
  445. package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
  446. package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
  447. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
  448. package/build/src/start/server/metro/createExpoAutolinkingResolver.js +123 -0
  449. package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -0
  450. package/build/src/start/server/metro/createExpoFallbackResolver.js +143 -0
  451. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -0
  452. package/build/src/start/server/metro/createServerComponentsMiddleware.js +501 -0
  453. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -0
  454. package/build/src/start/server/metro/createServerRouteMiddleware.js +229 -0
  455. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -0
  456. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +49 -0
  457. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -0
  458. package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
  459. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  460. package/build/src/start/server/metro/debugging/attachAtlas.js +103 -0
  461. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -0
  462. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +127 -0
  463. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -0
  464. package/build/src/start/server/metro/debugging/createHandlersFactory.js +58 -0
  465. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  466. package/build/src/start/server/metro/debugging/getDebuggerType.js +20 -0
  467. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  468. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +44 -0
  469. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  470. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +30 -0
  471. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  472. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +27 -0
  473. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  474. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +33 -0
  475. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  476. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +56 -0
  477. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -0
  478. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +49 -0
  479. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  480. package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
  481. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  482. package/build/src/start/server/metro/debugging/types.js +6 -0
  483. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  484. package/build/src/start/server/metro/dev-server/compression.js +45 -0
  485. package/build/src/start/server/metro/dev-server/compression.js.map +1 -0
  486. package/build/src/start/server/metro/dev-server/createEventSocket.js +103 -0
  487. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -0
  488. package/build/src/start/server/metro/dev-server/createMessageSocket.js +129 -0
  489. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -0
  490. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +82 -0
  491. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -0
  492. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +27 -0
  493. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -0
  494. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +43 -0
  495. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -0
  496. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +41 -0
  497. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -0
  498. package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js +17 -0
  499. package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -0
  500. package/build/src/start/server/metro/externals.js +89 -0
  501. package/build/src/start/server/metro/externals.js.map +1 -0
  502. package/build/src/start/server/metro/fetchRouterManifest.js +83 -0
  503. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -0
  504. package/build/src/start/server/metro/getCssModulesFromBundler.js +114 -0
  505. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
  506. package/build/src/start/server/metro/instantiateMetro.js +492 -0
  507. package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
  508. package/build/src/start/server/metro/log-box/LogBoxLog.js +211 -0
  509. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -0
  510. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +124 -0
  511. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -0
  512. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +46 -0
  513. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -0
  514. package/build/src/start/server/metro/metroErrorInterface.js +403 -0
  515. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
  516. package/build/src/start/server/metro/metroErrors.js +27 -0
  517. package/build/src/start/server/metro/metroErrors.js.map +1 -0
  518. package/build/src/start/server/metro/metroVirtualModules.js +92 -0
  519. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  520. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +62 -0
  521. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
  522. package/build/src/start/server/metro/resolveLoader.js +68 -0
  523. package/build/src/start/server/metro/resolveLoader.js.map +1 -0
  524. package/build/src/start/server/metro/router.js +218 -0
  525. package/build/src/start/server/metro/router.js.map +1 -0
  526. package/build/src/start/server/metro/runServer-fork.js +179 -0
  527. package/build/src/start/server/metro/runServer-fork.js.map +1 -0
  528. package/build/src/start/server/metro/serializeHtml.js +138 -0
  529. package/build/src/start/server/metro/serializeHtml.js.map +1 -0
  530. package/build/src/start/server/metro/symbolicate.js +6 -0
  531. package/build/src/start/server/metro/symbolicate.js.map +1 -0
  532. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +103 -0
  533. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
  534. package/build/src/start/server/metro/withMetroErrorReportingResolver.js +266 -0
  535. package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -0
  536. package/build/src/start/server/metro/withMetroMultiPlatform.js +748 -0
  537. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
  538. package/build/src/start/server/metro/withMetroResolvers.js +110 -0
  539. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -0
  540. package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js +63 -0
  541. package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js.map +1 -0
  542. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +32 -0
  543. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -0
  544. package/build/src/start/server/middleware/CorsMiddleware.js +92 -0
  545. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -0
  546. package/build/src/start/server/middleware/CreateFileMiddleware.js +166 -0
  547. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -0
  548. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +78 -0
  549. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
  550. package/build/src/start/server/middleware/DomComponentsMiddleware.js +138 -0
  551. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -0
  552. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +288 -0
  553. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
  554. package/build/src/start/server/middleware/ExpoMiddleware.js +121 -0
  555. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
  556. package/build/src/start/server/middleware/FaviconMiddleware.js +52 -0
  557. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -0
  558. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +29 -0
  559. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
  560. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +116 -0
  561. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
  562. package/build/src/start/server/middleware/ManifestMiddleware.js +362 -0
  563. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
  564. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +103 -0
  565. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
  566. package/build/src/start/server/middleware/ServeStaticMiddleware.js +85 -0
  567. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
  568. package/build/src/start/server/middleware/inspector/CdpClient.js +81 -0
  569. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -0
  570. package/build/src/start/server/middleware/inspector/JsInspector.js +123 -0
  571. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -0
  572. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +91 -0
  573. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -0
  574. package/build/src/start/server/middleware/inspector/middlwareMutations.js +30 -0
  575. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -0
  576. package/build/src/start/server/middleware/metroOptions.js +367 -0
  577. package/build/src/start/server/middleware/metroOptions.js.map +1 -0
  578. package/build/src/start/server/middleware/mutations.js +33 -0
  579. package/build/src/start/server/middleware/mutations.js.map +1 -0
  580. package/build/src/start/server/middleware/resolveAssets.js +154 -0
  581. package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
  582. package/build/src/start/server/middleware/resolvePlatform.js +71 -0
  583. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
  584. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +38 -0
  585. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -0
  586. package/build/src/start/server/middleware/server.types.js +6 -0
  587. package/build/src/start/server/middleware/server.types.js.map +1 -0
  588. package/build/src/start/server/openPlatforms.js +33 -0
  589. package/build/src/start/server/openPlatforms.js.map +1 -0
  590. package/build/src/start/server/platformBundlers.js +39 -0
  591. package/build/src/start/server/platformBundlers.js.map +1 -0
  592. package/build/src/start/server/serverLogLikeMetro.js +309 -0
  593. package/build/src/start/server/serverLogLikeMetro.js.map +1 -0
  594. package/build/src/start/server/type-generation/expo-env.js +51 -0
  595. package/build/src/start/server/type-generation/expo-env.js.map +1 -0
  596. package/build/src/start/server/type-generation/routes.js +510 -0
  597. package/build/src/start/server/type-generation/routes.js.map +1 -0
  598. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +79 -0
  599. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -0
  600. package/build/src/start/server/type-generation/tsconfig.js +122 -0
  601. package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
  602. package/build/src/start/server/webTemplate.js +111 -0
  603. package/build/src/start/server/webTemplate.js.map +1 -0
  604. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +316 -0
  605. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
  606. package/build/src/start/server/webpack/compile.js +101 -0
  607. package/build/src/start/server/webpack/compile.js.map +1 -0
  608. package/build/src/start/server/webpack/formatWebpackMessages.js +106 -0
  609. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
  610. package/build/src/start/server/webpack/resolveFromProject.js +63 -0
  611. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
  612. package/build/src/start/server/webpack/tls.js +128 -0
  613. package/build/src/start/server/webpack/tls.js.map +1 -0
  614. package/build/src/start/startAsync.js +204 -0
  615. package/build/src/start/startAsync.js.map +1 -0
  616. package/build/src/types.d.ts +2 -0
  617. package/build/src/utils/FileNotifier.js +138 -0
  618. package/build/src/utils/FileNotifier.js.map +1 -0
  619. package/build/src/utils/ansi.js +22 -0
  620. package/build/src/utils/ansi.js.map +1 -0
  621. package/build/src/utils/args.js +141 -0
  622. package/build/src/utils/args.js.map +1 -0
  623. package/build/src/utils/array.js +92 -0
  624. package/build/src/utils/array.js.map +1 -0
  625. package/build/src/utils/build-cache-providers/helpers.js +61 -0
  626. package/build/src/utils/build-cache-providers/helpers.js.map +1 -0
  627. package/build/src/utils/build-cache-providers/index.js +283 -0
  628. package/build/src/utils/build-cache-providers/index.js.map +1 -0
  629. package/build/src/utils/cocoapods.js +258 -0
  630. package/build/src/utils/cocoapods.js.map +1 -0
  631. package/build/src/utils/codesigning.js +395 -0
  632. package/build/src/utils/codesigning.js.map +1 -0
  633. package/build/src/utils/createFileTransform.js +34 -0
  634. package/build/src/utils/createFileTransform.js.map +1 -0
  635. package/build/src/utils/createTempPath.js +68 -0
  636. package/build/src/utils/createTempPath.js.map +1 -0
  637. package/build/src/utils/delay.js +58 -0
  638. package/build/src/utils/delay.js.map +1 -0
  639. package/build/src/utils/dir.js +121 -0
  640. package/build/src/utils/dir.js.map +1 -0
  641. package/build/src/utils/downloadAppAsync.js +98 -0
  642. package/build/src/utils/downloadAppAsync.js.map +1 -0
  643. package/build/src/utils/downloadExpoGoAsync.js +170 -0
  644. package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
  645. package/build/src/utils/editor.js +527 -0
  646. package/build/src/utils/editor.js.map +1 -0
  647. package/build/src/utils/env.js +266 -0
  648. package/build/src/utils/env.js.map +1 -0
  649. package/build/src/utils/errors.js +134 -0
  650. package/build/src/utils/errors.js.map +1 -0
  651. package/build/src/utils/exit.js +210 -0
  652. package/build/src/utils/exit.js.map +1 -0
  653. package/build/src/utils/expoUpdatesCli.js +120 -0
  654. package/build/src/utils/expoUpdatesCli.js.map +1 -0
  655. package/build/src/utils/fetch.js +41 -0
  656. package/build/src/utils/fetch.js.map +1 -0
  657. package/build/src/utils/filePath.js +42 -0
  658. package/build/src/utils/filePath.js.map +1 -0
  659. package/build/src/utils/findUp.js +61 -0
  660. package/build/src/utils/findUp.js.map +1 -0
  661. package/build/src/utils/fn.js +44 -0
  662. package/build/src/utils/fn.js.map +1 -0
  663. package/build/src/utils/freeport.js +70 -0
  664. package/build/src/utils/freeport.js.map +1 -0
  665. package/build/src/utils/getOrPromptApplicationId.js +259 -0
  666. package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
  667. package/build/src/utils/getRunningProcess.js +181 -0
  668. package/build/src/utils/getRunningProcess.js.map +1 -0
  669. package/build/src/utils/git.js +132 -0
  670. package/build/src/utils/git.js.map +1 -0
  671. package/build/src/utils/glob.js +46 -0
  672. package/build/src/utils/glob.js.map +1 -0
  673. package/build/src/utils/interactive.js +17 -0
  674. package/build/src/utils/interactive.js.map +1 -0
  675. package/build/src/utils/ip.js +63 -0
  676. package/build/src/utils/ip.js.map +1 -0
  677. package/build/src/utils/isModuleSymlinked.js +54 -0
  678. package/build/src/utils/isModuleSymlinked.js.map +1 -0
  679. package/build/src/utils/link.js +55 -0
  680. package/build/src/utils/link.js.map +1 -0
  681. package/build/src/utils/mergeGitIgnorePaths.js +189 -0
  682. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
  683. package/build/src/utils/modifyConfigAsync.js +106 -0
  684. package/build/src/utils/modifyConfigAsync.js.map +1 -0
  685. package/build/src/utils/modifyConfigPlugins.js +79 -0
  686. package/build/src/utils/modifyConfigPlugins.js.map +1 -0
  687. package/build/src/utils/net.js +43 -0
  688. package/build/src/utils/net.js.map +1 -0
  689. package/build/src/utils/nodeEnv.js +168 -0
  690. package/build/src/utils/nodeEnv.js.map +1 -0
  691. package/build/src/utils/nodeModules.js +52 -0
  692. package/build/src/utils/nodeModules.js.map +1 -0
  693. package/build/src/utils/npm.js +222 -0
  694. package/build/src/utils/npm.js.map +1 -0
  695. package/build/src/utils/obj.js +59 -0
  696. package/build/src/utils/obj.js.map +1 -0
  697. package/build/src/utils/open.js +36 -0
  698. package/build/src/utils/open.js.map +1 -0
  699. package/build/src/utils/ora.js +113 -0
  700. package/build/src/utils/ora.js.map +1 -0
  701. package/build/src/utils/plist.js +108 -0
  702. package/build/src/utils/plist.js.map +1 -0
  703. package/build/src/utils/port.js +196 -0
  704. package/build/src/utils/port.js.map +1 -0
  705. package/build/src/utils/profile.js +94 -0
  706. package/build/src/utils/profile.js.map +1 -0
  707. package/build/src/utils/progress.js +76 -0
  708. package/build/src/utils/progress.js.map +1 -0
  709. package/build/src/utils/prompts.js +151 -0
  710. package/build/src/utils/prompts.js.map +1 -0
  711. package/build/src/utils/qr.js +186 -0
  712. package/build/src/utils/qr.js.map +1 -0
  713. package/build/src/utils/resolveArgs.js +236 -0
  714. package/build/src/utils/resolveArgs.js.map +1 -0
  715. package/build/src/utils/resolveGlobal.js +195 -0
  716. package/build/src/utils/resolveGlobal.js.map +1 -0
  717. package/build/src/utils/scheme.js +212 -0
  718. package/build/src/utils/scheme.js.map +1 -0
  719. package/build/src/utils/stream.js +31 -0
  720. package/build/src/utils/stream.js.map +1 -0
  721. package/build/src/utils/strings.js +33 -0
  722. package/build/src/utils/strings.js.map +1 -0
  723. package/build/src/utils/tar.js +168 -0
  724. package/build/src/utils/tar.js.map +1 -0
  725. package/build/src/utils/telemetry/Telemetry.js +131 -0
  726. package/build/src/utils/telemetry/Telemetry.js.map +1 -0
  727. package/build/src/utils/telemetry/clients/FetchClient.js +91 -0
  728. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -0
  729. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +86 -0
  730. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -0
  731. package/build/src/utils/telemetry/clients/flushFetchDetached.js +39 -0
  732. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -0
  733. package/build/src/utils/telemetry/events.js +20 -0
  734. package/build/src/utils/telemetry/events.js.map +1 -0
  735. package/build/src/utils/telemetry/index.js +72 -0
  736. package/build/src/utils/telemetry/index.js.map +1 -0
  737. package/build/src/utils/telemetry/types.js +6 -0
  738. package/build/src/utils/telemetry/types.js.map +1 -0
  739. package/build/src/utils/telemetry/utils/constants.js +23 -0
  740. package/build/src/utils/telemetry/utils/constants.js.map +1 -0
  741. package/build/src/utils/telemetry/utils/context.js +115 -0
  742. package/build/src/utils/telemetry/utils/context.js.map +1 -0
  743. package/build/src/utils/template.js +48 -0
  744. package/build/src/utils/template.js.map +1 -0
  745. package/build/src/utils/terminal.js +15 -0
  746. package/build/src/utils/terminal.js.map +1 -0
  747. package/build/src/utils/tsconfig/evaluateTsConfig.js +87 -0
  748. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
  749. package/build/src/utils/tsconfig/loadTsConfigPaths.js +84 -0
  750. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
  751. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +94 -0
  752. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
  753. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +62 -0
  754. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
  755. package/build/src/utils/url.js +92 -0
  756. package/build/src/utils/url.js.map +1 -0
  757. package/build/src/utils/validateApplicationId.js +255 -0
  758. package/build/src/utils/validateApplicationId.js.map +1 -0
  759. package/build/src/utils/variadic.js +132 -0
  760. package/build/src/utils/variadic.js.map +1 -0
  761. package/build/src/whoami/index.js +69 -0
  762. package/build/src/whoami/index.js.map +1 -0
  763. package/build/src/whoami/whoamiAsync.js +75 -0
  764. package/build/src/whoami/whoamiAsync.js.map +1 -0
  765. package/changes.json +106 -0
  766. package/internal/unstable-expo-updates-exports.d.ts +31 -0
  767. package/internal/unstable-expo-updates-exports.js +3 -0
  768. package/package.json +275 -0
  769. package/static/loading-page/index.html +363 -0
  770. package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
  771. package/static/shims/react-native-web/dist/cjs/exports/BackHandler/index.js +10 -0
  772. package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
  773. package/static/shims/react-native-web/dist/exports/BackHandler/index.js +7 -0
  774. package/static/template/+html.tsx +28 -0
  775. package/static/template/+native-intent.ts +9 -0
  776. package/static/template/.eslintrc.js +5 -0
  777. package/static/template/[...rsc]+api.ts +16 -0
  778. package/static/template/babel.config.js +6 -0
  779. package/static/template/eslint.config.js +10 -0
  780. package/static/template/index.html +36 -0
  781. package/static/template/metro.config.js +7 -0
  782. package/static/template/webpack.config.js +7 -0
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ extractAsync: function() {
13
+ return extractAsync;
14
+ },
15
+ extractStream: function() {
16
+ return extractStream;
17
+ }
18
+ });
19
+ function _multitars() {
20
+ const data = require("multitars");
21
+ _multitars = function() {
22
+ return data;
23
+ };
24
+ return data;
25
+ }
26
+ function _nodecrypto() {
27
+ const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
28
+ _nodecrypto = function() {
29
+ return data;
30
+ };
31
+ return data;
32
+ }
33
+ function _nodefs() {
34
+ const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
35
+ _nodefs = function() {
36
+ return data;
37
+ };
38
+ return data;
39
+ }
40
+ function _nodepath() {
41
+ const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
42
+ _nodepath = function() {
43
+ return data;
44
+ };
45
+ return data;
46
+ }
47
+ function _nodestream() {
48
+ const data = require("node:stream");
49
+ _nodestream = function() {
50
+ return data;
51
+ };
52
+ return data;
53
+ }
54
+ const _dir = require("./dir");
55
+ function _interop_require_default(obj) {
56
+ return obj && obj.__esModule ? obj : {
57
+ default: obj
58
+ };
59
+ }
60
+ const debug = require('debug')('expo:utils:tar');
61
+ class ChecksumStream extends TransformStream {
62
+ constructor(algorithm){
63
+ super({
64
+ transform: (chunk, controller)=>{
65
+ this.hash.update(chunk);
66
+ controller.enqueue(chunk);
67
+ }
68
+ });
69
+ this.hash = _nodecrypto().default.createHash(algorithm);
70
+ }
71
+ digest(encoding) {
72
+ return this.hash.digest(encoding);
73
+ }
74
+ }
75
+ async function extractStream(input, output, options = {}) {
76
+ output = _nodepath().default.resolve(output);
77
+ await (0, _dir.ensureDirectoryAsync)(output);
78
+ const { checksumAlgorithm, strip = 0, rename, filter } = options;
79
+ const checksumStream = new ChecksumStream(checksumAlgorithm || 'md5');
80
+ const decompressionStream = new DecompressionStream('gzip');
81
+ const body = input.pipeThrough(checksumStream).pipeThrough(decompressionStream);
82
+ for await (const file of (0, _multitars().untar)(body)){
83
+ let name = _nodepath().default.normalize(file.name);
84
+ if (filter && !filter(name, file.typeflag)) {
85
+ debug(`filtered: ${_nodepath().default.resolve(output, name)}`);
86
+ continue;
87
+ } else if (rename) {
88
+ name = rename(name, file.typeflag) ?? name;
89
+ }
90
+ for(let idx = 0; idx < strip; idx++){
91
+ const sepIdx = name.indexOf(_nodepath().default.sep);
92
+ if (sepIdx > -1) {
93
+ name = name.slice(sepIdx + 1);
94
+ } else {
95
+ break;
96
+ }
97
+ }
98
+ const resolved = _nodepath().default.resolve(output, name);
99
+ if (!resolved.startsWith(output)) {
100
+ debug(`skip: ${resolved}`);
101
+ continue;
102
+ }
103
+ const parent = _nodepath().default.dirname(resolved);
104
+ if (parent !== output) {
105
+ let exists = false;
106
+ try {
107
+ const stat = await _nodefs().default.promises.lstat(parent);
108
+ if (stat.isSymbolicLink() || !stat.isDirectory() && !stat.isFile()) {
109
+ debug(`skip: ${resolved}`);
110
+ continue;
111
+ } else if (stat.isDirectory()) {
112
+ exists = true;
113
+ }
114
+ } catch {}
115
+ if (!exists) {
116
+ debug(`mkdir(p): ${parent}`);
117
+ await _nodefs().default.promises.mkdir(parent, {
118
+ recursive: true
119
+ });
120
+ }
121
+ }
122
+ switch(file.typeflag){
123
+ case _multitars().TarTypeFlag.FILE:
124
+ debug(`write(${file.mode.toString(8)}): ${resolved}`);
125
+ await _nodefs().default.promises.writeFile(resolved, (0, _multitars().streamToAsyncIterable)(file.stream()), {
126
+ mode: file.mode
127
+ });
128
+ break;
129
+ case _multitars().TarTypeFlag.DIRECTORY:
130
+ debug(`mkdir(${file.mode.toString(8)}): ${resolved}`);
131
+ try {
132
+ await _nodefs().default.promises.mkdir(resolved, {
133
+ mode: file.mode
134
+ });
135
+ } catch (error) {
136
+ if (error.code !== 'EEXIST') {
137
+ throw error;
138
+ }
139
+ }
140
+ break;
141
+ case _multitars().TarTypeFlag.SYMLINK:
142
+ case _multitars().TarTypeFlag.LINK:
143
+ {
144
+ const target = _nodepath().default.resolve(parent, file.linkname ?? '');
145
+ if (!target.startsWith(output) || target === parent) {
146
+ debug(`skip: ${resolved} -> ${target}`);
147
+ continue;
148
+ }
149
+ if (file.typeflag === _multitars().TarTypeFlag.LINK) {
150
+ debug(`link: ${resolved} -> ${target}`);
151
+ await _nodefs().default.promises.link(target, resolved);
152
+ } else {
153
+ const stat = await _nodefs().default.promises.lstat(target).catch(()=>null);
154
+ const type = (stat == null ? void 0 : stat.isDirectory()) ? 'dir' : 'file';
155
+ debug(`symlink(${type}): ${resolved} -> ${target}`);
156
+ await _nodefs().default.promises.symlink(target, resolved, type);
157
+ }
158
+ break;
159
+ }
160
+ }
161
+ }
162
+ return checksumStream.digest('hex');
163
+ }
164
+ async function extractAsync(input, output, options) {
165
+ await extractStream(_nodestream().Readable.toWeb(_nodefs().default.createReadStream(input)), output, options);
166
+ }
167
+
168
+ //# sourceMappingURL=tar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/tar.ts"],"sourcesContent":["import { streamToAsyncIterable, TarTypeFlag, untar } from 'multitars';\nimport crypto from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\n\nimport { ensureDirectoryAsync } from './dir';\n\nconst debug = require('debug')('expo:utils:tar') as typeof console.log;\n\nclass ChecksumStream extends TransformStream {\n hash: crypto.Hash;\n constructor(algorithm: string) {\n super({\n transform: (chunk, controller) => {\n this.hash.update(chunk);\n controller.enqueue(chunk);\n },\n });\n this.hash = crypto.createHash(algorithm);\n }\n\n digest(): Buffer;\n digest(encoding: crypto.BinaryToTextEncoding): string;\n digest(encoding?: crypto.BinaryToTextEncoding): string | Buffer {\n return this.hash.digest(encoding!);\n }\n}\n\nexport interface ExtractOptions {\n strip?: number;\n filter?(name: string, type: TarTypeFlag): boolean | null | undefined;\n rename?(name: string, type: TarTypeFlag): string | null | undefined;\n checksumAlgorithm?: string;\n}\n\nexport async function extractStream(\n input: ReadableStream,\n output: string,\n options: ExtractOptions = {}\n): Promise<string> {\n output = path.resolve(output);\n await ensureDirectoryAsync(output);\n\n const { checksumAlgorithm, strip = 0, rename, filter } = options;\n\n const checksumStream = new ChecksumStream(checksumAlgorithm || 'md5');\n const decompressionStream = new DecompressionStream('gzip');\n\n const body = input.pipeThrough(checksumStream).pipeThrough(decompressionStream);\n\n for await (const file of untar(body)) {\n let name = path.normalize(file.name);\n if (filter && !filter(name, file.typeflag)) {\n debug(`filtered: ${path.resolve(output, name)}`);\n continue;\n } else if (rename) {\n name = rename(name, file.typeflag) ?? name;\n }\n\n for (let idx = 0; idx < strip; idx++) {\n const sepIdx = name.indexOf(path.sep);\n if (sepIdx > -1) {\n name = name.slice(sepIdx + 1);\n } else {\n break;\n }\n }\n\n const resolved = path.resolve(output, name);\n if (!resolved.startsWith(output)) {\n debug(`skip: ${resolved}`);\n continue;\n }\n\n const parent = path.dirname(resolved);\n if (parent !== output) {\n let exists = false;\n try {\n const stat = await fs.promises.lstat(parent);\n if (stat.isSymbolicLink() || (!stat.isDirectory() && !stat.isFile())) {\n debug(`skip: ${resolved}`);\n continue;\n } else if (stat.isDirectory()) {\n exists = true;\n }\n } catch {}\n\n if (!exists) {\n debug(`mkdir(p): ${parent}`);\n await fs.promises.mkdir(parent, { recursive: true });\n }\n }\n\n switch (file.typeflag) {\n case TarTypeFlag.FILE:\n debug(`write(${file.mode.toString(8)}): ${resolved}`);\n await fs.promises.writeFile(resolved, streamToAsyncIterable(file.stream()), {\n mode: file.mode,\n });\n break;\n case TarTypeFlag.DIRECTORY:\n debug(`mkdir(${file.mode.toString(8)}): ${resolved}`);\n try {\n await fs.promises.mkdir(resolved, { mode: file.mode });\n } catch (error: any) {\n if (error.code !== 'EEXIST') {\n throw error;\n }\n }\n break;\n case TarTypeFlag.SYMLINK:\n case TarTypeFlag.LINK: {\n const target = path.resolve(parent, file.linkname ?? '');\n if (!target.startsWith(output) || target === parent) {\n debug(`skip: ${resolved} -> ${target}`);\n continue;\n }\n\n if (file.typeflag === TarTypeFlag.LINK) {\n debug(`link: ${resolved} -> ${target}`);\n await fs.promises.link(target, resolved);\n } else {\n const stat = await fs.promises.lstat(target).catch(() => null);\n const type = stat?.isDirectory() ? 'dir' : 'file';\n debug(`symlink(${type}): ${resolved} -> ${target}`);\n await fs.promises.symlink(target, resolved, type);\n }\n break;\n }\n }\n }\n\n return checksumStream.digest('hex');\n}\n\n/** Extract a tar using built-in tools if available and falling back on Node.js. */\nexport async function extractAsync(\n input: string,\n output: string,\n options?: ExtractOptions\n): Promise<void> {\n await extractStream(\n Readable.toWeb(fs.createReadStream(input)) as ReadableStream,\n output,\n options\n );\n}\n"],"names":["extractAsync","extractStream","debug","require","ChecksumStream","TransformStream","constructor","algorithm","transform","chunk","controller","hash","update","enqueue","crypto","createHash","digest","encoding","input","output","options","path","resolve","ensureDirectoryAsync","checksumAlgorithm","strip","rename","filter","checksumStream","decompressionStream","DecompressionStream","body","pipeThrough","file","untar","name","normalize","typeflag","idx","sepIdx","indexOf","sep","slice","resolved","startsWith","parent","dirname","exists","stat","fs","promises","lstat","isSymbolicLink","isDirectory","isFile","mkdir","recursive","TarTypeFlag","FILE","mode","toString","writeFile","streamToAsyncIterable","stream","DIRECTORY","error","code","SYMLINK","LINK","target","linkname","link","catch","type","symlink","Readable","toWeb","createReadStream"],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Telemetry", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Telemetry;
9
+ }
10
+ });
11
+ function _nodecrypto() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
13
+ _nodecrypto = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _FetchClient = require("./clients/FetchClient");
19
+ const _FetchDetachedClient = require("./clients/FetchDetachedClient");
20
+ const _context = require("./utils/context");
21
+ const _UserSettings = require("../../api/user/UserSettings");
22
+ const _env = require("../env");
23
+ function _interop_require_default(obj) {
24
+ return obj && obj.__esModule ? obj : {
25
+ default: obj
26
+ };
27
+ }
28
+ const debug = require('debug')('expo:telemetry');
29
+ 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 = [];
34
+ this.actor = {
35
+ anonymousId,
36
+ sessionId
37
+ };
38
+ this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);
39
+ if (userId) {
40
+ this.initialize({
41
+ userId
42
+ });
43
+ }
44
+ }
45
+ get strategy() {
46
+ return this.client.strategy;
47
+ }
48
+ setStrategy(strategy) {
49
+ // Abort when client is already using the correct strategy
50
+ if (this.client.strategy === strategy) return;
51
+ // 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);
54
+ // Load and instantiate the correct client, based on strategy
55
+ const client = createClientFromStrategy(strategy);
56
+ // Replace the client, and re-record any pending records
57
+ this.client.abort().forEach((record)=>client.record([
58
+ record
59
+ ]));
60
+ this.client = client;
61
+ return this;
62
+ }
63
+ get isInitialized() {
64
+ return this.actor.userHash !== undefined;
65
+ }
66
+ initialize({ userId }) {
67
+ this.actor.userHash = userId ? hashUserId(userId) : null;
68
+ this.flushEarlyRecords();
69
+ }
70
+ flushEarlyRecords() {
71
+ if (this.earlyRecords.length) {
72
+ this.recordInternal(this.earlyRecords);
73
+ this.earlyRecords = [];
74
+ }
75
+ }
76
+ recordInternal(records) {
77
+ return this.client.record(records.map((record)=>({
78
+ ...record,
79
+ type: 'track',
80
+ sentAt: new Date(),
81
+ messageId: createMessageId(record),
82
+ anonymousId: this.actor.anonymousId,
83
+ userHash: this.actor.userHash,
84
+ context: {
85
+ ...this.context,
86
+ sessionId: this.actor.sessionId,
87
+ client: {
88
+ mode: this.client.strategy
89
+ }
90
+ }
91
+ })));
92
+ }
93
+ record(record) {
94
+ const records = Array.isArray(record) ? record : [
95
+ record
96
+ ];
97
+ debug('Recording %d event(s)', records.length);
98
+ if (!this.isInitialized) {
99
+ this.earlyRecords.push(...records);
100
+ return;
101
+ }
102
+ return this.recordInternal(records);
103
+ }
104
+ flush() {
105
+ debug('Flushing events...');
106
+ this.flushEarlyRecords();
107
+ return this.client.flush();
108
+ }
109
+ flushOnExit() {
110
+ this.setStrategy('detached');
111
+ this.flushEarlyRecords();
112
+ return this.client.flush();
113
+ }
114
+ }
115
+ function createClientFromStrategy(strategy) {
116
+ // 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();
119
+ }
120
+ return new _FetchDetachedClient.FetchDetachedClient();
121
+ }
122
+ /** 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');
125
+ return `node-${md5}-${uuid}`;
126
+ }
127
+ /** Hash the user identifier to make it untracable */ function hashUserId(userId) {
128
+ return _nodecrypto().default.createHash('sha256').update(userId).digest('hex');
129
+ }
130
+
131
+ //# sourceMappingURL=Telemetry.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FetchClient", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FetchClient;
9
+ }
10
+ });
11
+ function _nodebuffer() {
12
+ const data = require("node:buffer");
13
+ _nodebuffer = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ const _fetch = require("../../fetch");
19
+ const _constants = require("../utils/constants");
20
+ class FetchClient {
21
+ constructor({ fetch = createTelemetryFetch(), url = _constants.TELEMETRY_ENDPOINT, target = _constants.TELEMETRY_TARGET } = {}){
22
+ /** This client should be used for long-running commands */ this.strategy = 'instant';
23
+ /** All records that are queued and being sent */ this.entries = new Set();
24
+ this.fetch = fetch;
25
+ this.url = url;
26
+ this.headers = {
27
+ accept: 'application/json',
28
+ 'content-type': 'application/json',
29
+ 'user-agent': `expo-cli/${"55.0.16"}`,
30
+ authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
31
+ };
32
+ }
33
+ queue(records, controller, request) {
34
+ const entry = mutePromise(request);
35
+ entry.finally(()=>this.entries.delete(entry));
36
+ entry.controller = controller;
37
+ entry.records = records;
38
+ this.entries.add(entry);
39
+ return entry;
40
+ }
41
+ record(record) {
42
+ const records = Array.isArray(record) ? record : [
43
+ record
44
+ ];
45
+ if (!records.length) return;
46
+ const controller = new AbortController();
47
+ const body = JSON.stringify({
48
+ sentAt: new Date(),
49
+ batch: records
50
+ });
51
+ return this.queue(records, controller, this.fetch(this.url, {
52
+ body,
53
+ method: 'POST',
54
+ signal: controller.signal,
55
+ headers: this.headers
56
+ }));
57
+ }
58
+ flush() {
59
+ return mutePromise(Promise.all(this.entries));
60
+ }
61
+ abort() {
62
+ const records = [];
63
+ this.entries.forEach((entry)=>{
64
+ try {
65
+ entry.controller.abort();
66
+ records.push(...entry.records);
67
+ } catch {
68
+ // Ignore abort errors
69
+ }
70
+ });
71
+ return records;
72
+ }
73
+ }
74
+ function createTelemetryFetch() {
75
+ return async function telemetryFetch(info, init) {
76
+ let error;
77
+ for(let attemptCount = 0; attemptCount < 3; attemptCount++){
78
+ try {
79
+ return await (0, _fetch.fetch)(info, init);
80
+ } catch (_error) {
81
+ error = _error;
82
+ }
83
+ }
84
+ throw error;
85
+ };
86
+ }
87
+ /** Mute a promise by removing the original return type and hide errors */ function mutePromise(promise) {
88
+ return promise.then(()=>{}, ()=>{});
89
+ }
90
+
91
+ //# sourceMappingURL=FetchClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import type { RequestInit } from 'fetch-nodeshim';\nimport { Buffer } from 'node:buffer';\n\nimport { fetch } from '../../fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype Fetch = typeof fetch;\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: 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: 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 return async function telemetryFetch(info, init) {\n let error: any;\n for (let attemptCount = 0; attemptCount < 3; attemptCount++) {\n try {\n return await fetch(info, init);\n } catch (_error: any) {\n error = _error;\n }\n }\n throw error;\n };\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","telemetryFetch","info","init","error","attemptCount","_error","promise","then"],"mappings":";;;;+BAuBaA;;;eAAAA;;;;yBAtBU;;;;;;uBAED;2BAE+B;AAkB9C,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,OAAO,eAAe6C,eAAeC,IAAI,EAAEC,IAAI;QAC7C,IAAIC;QACJ,IAAK,IAAIC,eAAe,GAAGA,eAAe,GAAGA,eAAgB;YAC3D,IAAI;gBACF,OAAO,MAAMlD,IAAAA,YAAK,EAAC+C,MAAMC;YAC3B,EAAE,OAAOG,QAAa;gBACpBF,QAAQE;YACV;QACF;QACA,MAAMF;IACR;AACF;AAEA,wEAAwE,GACxE,SAAS1B,YAAY6B,OAAqB;IACxC,OAAOA,QAAQC,IAAI,CACjB,KAAO,GACP,KAAO;AAEX"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "FetchDetachedClient", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return FetchDetachedClient;
9
+ }
10
+ });
11
+ function _nodechild_process() {
12
+ const data = require("node:child_process");
13
+ _nodechild_process = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _nodefs() {
19
+ const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
20
+ _nodefs = function() {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
25
+ function _nodepath() {
26
+ const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
27
+ _nodepath = function() {
28
+ return data;
29
+ };
30
+ return data;
31
+ }
32
+ const _createTempPath = require("../../createTempPath");
33
+ function _interop_require_default(obj) {
34
+ return obj && obj.__esModule ? obj : {
35
+ default: obj
36
+ };
37
+ }
38
+ const debug = require('debug')('expo:telemetry:client:detached');
39
+ class FetchDetachedClient {
40
+ abort() {
41
+ return this.records;
42
+ }
43
+ record(record) {
44
+ this.records.push(...record.map((record)=>({
45
+ ...record,
46
+ originalTimestamp: record.sentAt
47
+ })));
48
+ }
49
+ async flush() {
50
+ try {
51
+ if (!this.records.length) {
52
+ return debug('No records to flush, skipping...');
53
+ }
54
+ const file = (0, _createTempPath.createTempFilePath)('expo-telemetry.json');
55
+ const data = JSON.stringify({
56
+ records: this.records
57
+ });
58
+ this.records = [];
59
+ await _nodefs().default.promises.mkdir(_nodepath().default.dirname(file), {
60
+ recursive: true
61
+ });
62
+ await _nodefs().default.promises.writeFile(file, data);
63
+ const child = (0, _nodechild_process().spawn)(process.execPath, [
64
+ require.resolve('./flushFetchDetached'),
65
+ file
66
+ ], {
67
+ detached: true,
68
+ windowsHide: true,
69
+ shell: false,
70
+ stdio: 'ignore'
71
+ });
72
+ child.unref();
73
+ } catch (error) {
74
+ // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,
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);
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 = [];
83
+ }
84
+ }
85
+
86
+ //# sourceMappingURL=FetchDetachedClient.js.map
@@ -0,0 +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"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _nodefs() {
6
+ const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
7
+ _nodefs = function() {
8
+ return data;
9
+ };
10
+ return data;
11
+ }
12
+ const _FetchClient = require("./FetchClient");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const telemetryFile = process.argv[2];
19
+ flush().catch(()=>_nodefs().default.promises.unlink(telemetryFile)).finally(()=>process.exit(0));
20
+ async function flush() {
21
+ if (!telemetryFile) return;
22
+ let json;
23
+ let data;
24
+ try {
25
+ json = await _nodefs().default.promises.readFile(telemetryFile, 'utf8');
26
+ data = JSON.parse(json);
27
+ } catch (error) {
28
+ if (error.code === 'ENOENT') return;
29
+ throw error;
30
+ }
31
+ if (data.records.length) {
32
+ const client = new _FetchClient.FetchClient();
33
+ await client.record(data.records);
34
+ await client.flush();
35
+ }
36
+ await _nodefs().default.promises.unlink(telemetryFile);
37
+ }
38
+
39
+ //# sourceMappingURL=flushFetchDetached.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/utils/telemetry/clients/flushFetchDetached.ts"],"sourcesContent":["import fs from 'node:fs';\n\nimport { FetchClient } from './FetchClient';\nimport type { TelemetryRecordInternal } from '../types';\n\nconst telemetryFile = process.argv[2];\n\nflush()\n .catch(() => fs.promises.unlink(telemetryFile))\n .finally(() => process.exit(0));\n\nasync function flush() {\n if (!telemetryFile) return;\n\n let json: string;\n let data: { records: TelemetryRecordInternal[] };\n\n try {\n json = await fs.promises.readFile(telemetryFile, 'utf8');\n data = JSON.parse(json) as any;\n } catch (error: any) {\n if (error.code === 'ENOENT') return;\n throw error;\n }\n\n if (data.records.length) {\n const client = new FetchClient();\n await client.record(data.records);\n await client.flush();\n }\n\n await fs.promises.unlink(telemetryFile);\n}\n"],"names":["telemetryFile","process","argv","flush","catch","fs","promises","unlink","finally","exit","json","data","readFile","JSON","parse","error","code","records","length","client","FetchClient","record"],"mappings":";;;;;gEAAe;;;;;;6BAEa;;;;;;AAG5B,MAAMA,gBAAgBC,QAAQC,IAAI,CAAC,EAAE;AAErCC,QACGC,KAAK,CAAC,IAAMC,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP,gBAC/BQ,OAAO,CAAC,IAAMP,QAAQQ,IAAI,CAAC;AAE9B,eAAeN;IACb,IAAI,CAACH,eAAe;IAEpB,IAAIU;IACJ,IAAIC;IAEJ,IAAI;QACFD,OAAO,MAAML,iBAAE,CAACC,QAAQ,CAACM,QAAQ,CAACZ,eAAe;QACjDW,OAAOE,KAAKC,KAAK,CAACJ;IACpB,EAAE,OAAOK,OAAY;QACnB,IAAIA,MAAMC,IAAI,KAAK,UAAU;QAC7B,MAAMD;IACR;IAEA,IAAIJ,KAAKM,OAAO,CAACC,MAAM,EAAE;QACvB,MAAMC,SAAS,IAAIC,wBAAW;QAC9B,MAAMD,OAAOE,MAAM,CAACV,KAAKM,OAAO;QAChC,MAAME,OAAOhB,KAAK;IACpB;IAEA,MAAME,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP;AAC3B"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "commandEvent", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return commandEvent;
9
+ }
10
+ });
11
+ function commandEvent(commandName) {
12
+ return {
13
+ event: 'action',
14
+ properties: {
15
+ action: `expo ${commandName}`
16
+ }
17
+ };
18
+ }
19
+
20
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/utils/telemetry/events.ts"],"sourcesContent":["import type { TelemetryRecord } from './types';\n\n/** A single command invocation, with the invoked command name */\nexport function commandEvent(commandName: string): TelemetryRecord {\n return {\n event: 'action',\n properties: {\n action: `expo ${commandName}`,\n },\n };\n}\n"],"names":["commandEvent","commandName","event","properties","action"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,aAAaC,WAAmB;IAC9C,OAAO;QACLC,OAAO;QACPC,YAAY;YACVC,QAAQ,CAAC,KAAK,EAAEH,aAAa;QAC/B;IACF;AACF"}