@expo/cli 0.17.10 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/build/bin/cli +11 -7
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/api/getExpoSchema.js +23 -5
  4. package/build/src/api/getExpoSchema.js.map +1 -1
  5. package/build/src/api/graphql/client.js +28 -10
  6. package/build/src/api/graphql/client.js.map +1 -1
  7. package/build/src/api/graphql/queries/AppQuery.js +16 -4
  8. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  9. package/build/src/api/graphql/queries/UserQuery.js +8 -2
  10. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  11. package/build/src/api/graphql/types/App.js +8 -2
  12. package/build/src/api/graphql/types/App.js.map +1 -1
  13. package/build/src/api/rest/cache/FileSystemCache.js +21 -9
  14. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  15. package/build/src/api/rest/cache/response.js +9 -3
  16. package/build/src/api/rest/cache/response.js.map +1 -1
  17. package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
  18. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  19. package/build/src/api/rest/client.js +23 -5
  20. package/build/src/api/rest/client.js.map +1 -1
  21. package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
  22. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
  23. package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
  24. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  25. package/build/src/api/settings.js +8 -2
  26. package/build/src/api/settings.js.map +1 -1
  27. package/build/src/api/updateDevelopmentSession.js +18 -6
  28. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  29. package/build/src/api/user/UserSettings.js +26 -8
  30. package/build/src/api/user/UserSettings.js.map +1 -1
  31. package/build/src/api/user/actions.js +17 -5
  32. package/build/src/api/user/actions.js.map +1 -1
  33. package/build/src/api/user/expoSsoLauncher.js +32 -8
  34. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  35. package/build/src/api/user/otp.js +17 -5
  36. package/build/src/api/user/otp.js.map +1 -1
  37. package/build/src/api/user/user.js +19 -12
  38. package/build/src/api/user/user.js.map +1 -1
  39. package/build/src/config/configAsync.js +25 -7
  40. package/build/src/config/configAsync.js.map +1 -1
  41. package/build/src/config/index.js +9 -3
  42. package/build/src/config/index.js.map +1 -1
  43. package/build/src/customize/customizeAsync.js +8 -2
  44. package/build/src/customize/customizeAsync.js.map +1 -1
  45. package/build/src/customize/generate.js +16 -4
  46. package/build/src/customize/generate.js.map +1 -1
  47. package/build/src/customize/index.js +10 -4
  48. package/build/src/customize/index.js.map +1 -1
  49. package/build/src/customize/templates.js +33 -9
  50. package/build/src/customize/templates.js.map +1 -1
  51. package/build/src/customize/typescript.js +8 -2
  52. package/build/src/customize/typescript.js.map +1 -1
  53. package/build/src/export/createMetadataJson.js +8 -2
  54. package/build/src/export/createMetadataJson.js.map +1 -1
  55. package/build/src/export/embed/exportEmbedAsync.js +58 -18
  56. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  57. package/build/src/export/embed/index.js +17 -5
  58. package/build/src/export/embed/index.js.map +1 -1
  59. package/build/src/export/embed/resolveOptions.js +8 -2
  60. package/build/src/export/embed/resolveOptions.js.map +1 -1
  61. package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
  62. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  63. package/build/src/export/exportApp.js +32 -12
  64. package/build/src/export/exportApp.js.map +1 -1
  65. package/build/src/export/exportAssets.js +27 -9
  66. package/build/src/export/exportAssets.js.map +1 -1
  67. package/build/src/export/exportAsync.js +10 -2
  68. package/build/src/export/exportAsync.js.map +1 -1
  69. package/build/src/export/exportHermes.js +29 -17
  70. package/build/src/export/exportHermes.js.map +1 -1
  71. package/build/src/export/exportStaticAsync.js +69 -37
  72. package/build/src/export/exportStaticAsync.js.map +1 -1
  73. package/build/src/export/favicon.js +33 -9
  74. package/build/src/export/favicon.js.map +1 -1
  75. package/build/src/export/fork-bundleAsync.js +61 -16
  76. package/build/src/export/fork-bundleAsync.js.map +1 -1
  77. package/build/src/export/getPublicExpoManifest.js +8 -2
  78. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  79. package/build/src/export/getResolvedLocales.js +15 -3
  80. package/build/src/export/getResolvedLocales.js.map +1 -1
  81. package/build/src/export/index.js +11 -5
  82. package/build/src/export/index.js.map +1 -1
  83. package/build/src/export/metroAssetLocalPath.js +9 -3
  84. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  85. package/build/src/export/persistMetroAssets.js +27 -15
  86. package/build/src/export/persistMetroAssets.js.map +1 -1
  87. package/build/src/export/publicFolder.js +18 -6
  88. package/build/src/export/publicFolder.js.map +1 -1
  89. package/build/src/export/resolveOptions.js +8 -2
  90. package/build/src/export/resolveOptions.js.map +1 -1
  91. package/build/src/export/saveAssets.js +43 -19
  92. package/build/src/export/saveAssets.js.map +1 -1
  93. package/build/src/export/web/exportWebAsync.js +16 -4
  94. package/build/src/export/web/exportWebAsync.js.map +1 -1
  95. package/build/src/export/web/index.js +9 -3
  96. package/build/src/export/web/index.js.map +1 -1
  97. package/build/src/install/applyPlugins.js +8 -2
  98. package/build/src/install/applyPlugins.js.map +1 -1
  99. package/build/src/install/checkPackages.js +18 -6
  100. package/build/src/install/checkPackages.js.map +1 -1
  101. package/build/src/install/fixPackages.js +8 -2
  102. package/build/src/install/fixPackages.js.map +1 -1
  103. package/build/src/install/index.js +14 -8
  104. package/build/src/install/index.js.map +1 -1
  105. package/build/src/install/installAsync.js +27 -9
  106. package/build/src/install/installAsync.js.map +1 -1
  107. package/build/src/install/installExpoPackage.js +17 -5
  108. package/build/src/install/installExpoPackage.js.map +1 -1
  109. package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
  110. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
  111. package/build/src/log.js +9 -3
  112. package/build/src/log.js.map +1 -1
  113. package/build/src/prebuild/clearNativeFolder.js +37 -13
  114. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  115. package/build/src/prebuild/configureProjectAsync.js +16 -4
  116. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  117. package/build/src/prebuild/copyTemplateFiles.js +29 -11
  118. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  119. package/build/src/prebuild/ensureConfigAsync.js +24 -6
  120. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  121. package/build/src/prebuild/index.js +14 -8
  122. package/build/src/prebuild/index.js.map +1 -1
  123. package/build/src/prebuild/prebuildAsync.js +9 -3
  124. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  125. package/build/src/prebuild/renameTemplateAppName.js +119 -0
  126. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  127. package/build/src/prebuild/resolveOptions.js +32 -8
  128. package/build/src/prebuild/resolveOptions.js.map +1 -1
  129. package/build/src/prebuild/resolveTemplate.js +44 -14
  130. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  131. package/build/src/prebuild/updateFromTemplate.js +18 -2
  132. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  133. package/build/src/prebuild/updatePackageJson.js +49 -13
  134. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  135. package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
  136. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
  137. package/build/src/run/android/index.js +20 -4
  138. package/build/src/run/android/index.js.map +1 -1
  139. package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
  140. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  141. package/build/src/run/android/resolveInstallApkName.js +18 -6
  142. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  143. package/build/src/run/android/resolveLaunchProps.js +10 -4
  144. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  145. package/build/src/run/android/resolveOptions.js +5 -3
  146. package/build/src/run/android/resolveOptions.js.map +1 -1
  147. package/build/src/run/android/runAndroidAsync.js +13 -4
  148. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  149. package/build/src/run/ensureNativeProject.js +15 -3
  150. package/build/src/run/ensureNativeProject.js.map +1 -1
  151. package/build/src/run/hints.js +10 -4
  152. package/build/src/run/hints.js.map +1 -1
  153. package/build/src/run/index.js +8 -2
  154. package/build/src/run/index.js.map +1 -1
  155. package/build/src/run/ios/XcodeBuild.js +57 -21
  156. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  157. package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
  158. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  159. package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
  160. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  161. package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
  162. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  163. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
  164. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  165. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
  166. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  167. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
  168. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  169. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
  170. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
  171. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
  172. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  173. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
  174. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  175. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
  176. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  177. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
  178. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  179. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
  180. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  181. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
  182. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  183. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
  184. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  185. package/build/src/run/ios/codeSigning/Security.js +17 -5
  186. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  187. package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
  188. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  189. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
  190. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
  191. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
  192. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  193. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
  194. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  195. package/build/src/run/ios/index.js +19 -7
  196. package/build/src/run/ios/index.js.map +1 -1
  197. package/build/src/run/ios/launchApp.js +17 -5
  198. package/build/src/run/ios/launchApp.js.map +1 -1
  199. package/build/src/run/ios/options/promptDevice.js +9 -3
  200. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  201. package/build/src/run/ios/options/resolveDevice.js +1 -2
  202. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  203. package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
  204. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  205. package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
  206. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  207. package/build/src/run/ios/runIosAsync.js +10 -2
  208. package/build/src/run/ios/runIosAsync.js.map +1 -1
  209. package/build/src/run/startBundler.js +16 -4
  210. package/build/src/run/startBundler.js.map +1 -1
  211. package/build/src/start/detectDevClient.js +29 -0
  212. package/build/src/start/detectDevClient.js.map +1 -0
  213. package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
  214. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  215. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
  216. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  217. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
  218. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  219. package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
  220. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  221. package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
  222. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  223. package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
  224. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  225. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
  226. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  227. package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
  228. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  229. package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
  230. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  231. package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
  232. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  233. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
  234. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  235. package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
  236. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  237. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
  238. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  239. package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
  240. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  241. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
  242. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  243. package/build/src/start/index.js +17 -11
  244. package/build/src/start/index.js.map +1 -1
  245. package/build/src/start/interface/commandsTable.js +27 -9
  246. package/build/src/start/interface/commandsTable.js.map +1 -1
  247. package/build/src/start/interface/interactiveActions.js +17 -11
  248. package/build/src/start/interface/interactiveActions.js.map +1 -1
  249. package/build/src/start/interface/startInterface.js +8 -2
  250. package/build/src/start/interface/startInterface.js.map +1 -1
  251. package/build/src/start/platforms/AppIdResolver.js +9 -3
  252. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  253. package/build/src/start/platforms/DeviceManager.js +8 -2
  254. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  255. package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
  256. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  257. package/build/src/start/platforms/PlatformManager.js +33 -13
  258. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  259. package/build/src/start/platforms/android/ADBServer.js +17 -5
  260. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  261. package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
  262. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  263. package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
  264. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
  265. package/build/src/start/platforms/android/AndroidSdk.js +34 -10
  266. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  267. package/build/src/start/platforms/android/activateWindow.js +16 -4
  268. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  269. package/build/src/start/platforms/android/adb.js +21 -4
  270. package/build/src/start/platforms/android/adb.js.map +1 -1
  271. package/build/src/start/platforms/android/emulator.js +32 -8
  272. package/build/src/start/platforms/android/emulator.js.map +1 -1
  273. package/build/src/start/platforms/android/gradle.js +23 -6
  274. package/build/src/start/platforms/android/gradle.js.map +1 -1
  275. package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
  276. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  277. package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
  278. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  279. package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
  280. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  281. package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
  282. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  283. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
  284. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  285. package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
  286. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  287. package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
  288. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  289. package/build/src/start/platforms/ios/simctl.js +12 -6
  290. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  291. package/build/src/start/platforms/ios/simctlLogging.js +40 -10
  292. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  293. package/build/src/start/platforms/ios/xcrun.js +16 -4
  294. package/build/src/start/platforms/ios/xcrun.js.map +1 -1
  295. package/build/src/start/project/dotExpo.js +27 -9
  296. package/build/src/start/project/dotExpo.js.map +1 -1
  297. package/build/src/start/resolveOptions.js +33 -15
  298. package/build/src/start/resolveOptions.js.map +1 -1
  299. package/build/src/start/server/AsyncNgrok.js +34 -10
  300. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  301. package/build/src/start/server/BundlerDevServer.js +16 -4
  302. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  303. package/build/src/start/server/DevServerManager.js +28 -10
  304. package/build/src/start/server/DevServerManager.js.map +1 -1
  305. package/build/src/start/server/DevToolsPluginManager.js +16 -4
  306. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  307. package/build/src/start/server/DevelopmentSession.js +9 -3
  308. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  309. package/build/src/start/server/ReactDevToolsProxy.js +26 -8
  310. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  311. package/build/src/start/server/UrlCreator.js +19 -6
  312. package/build/src/start/server/UrlCreator.js.map +1 -1
  313. package/build/src/start/server/getStaticRenderFunctions.js +91 -55
  314. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  315. package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
  316. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  317. package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
  318. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  319. package/build/src/start/server/metro/TerminalReporter.js +26 -8
  320. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  321. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  322. package/build/src/start/server/metro/createExpoMetroResolver.js +56 -20
  323. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  324. package/build/src/start/server/metro/createJResolver.js +90 -45
  325. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  326. package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
  327. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  328. package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
  329. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  330. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
  331. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  332. package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
  333. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  334. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
  335. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  336. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
  337. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  338. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
  339. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  340. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
  341. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  342. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
  343. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  344. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
  345. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  346. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
  347. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  348. package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
  349. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  350. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  351. package/build/src/start/server/metro/externals.js +51 -64
  352. package/build/src/start/server/metro/externals.js.map +1 -1
  353. package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
  354. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  355. package/build/src/start/server/metro/formatFileCandidates.js +8 -2
  356. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  357. package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
  358. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  359. package/build/src/start/server/metro/instantiateMetro.js +96 -30
  360. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  361. package/build/src/start/server/metro/metroErrorInterface.js +40 -21
  362. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  363. package/build/src/start/server/metro/metroVirtualModules.js +82 -0
  364. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  365. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
  366. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  367. package/build/src/start/server/metro/router.js +44 -17
  368. package/build/src/start/server/metro/router.js.map +1 -1
  369. package/build/src/start/server/metro/runServer-fork.js +56 -14
  370. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  371. package/build/src/start/server/metro/serializeHtml.js +25 -12
  372. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  373. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
  374. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  375. package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
  376. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  377. package/build/src/start/server/metro/withMetroResolvers.js +31 -13
  378. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  379. package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
  380. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  381. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
  382. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  383. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
  384. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  385. package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
  386. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  387. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
  388. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  389. package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
  390. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  391. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
  392. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  393. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
  394. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  395. package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
  396. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  397. package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
  398. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  399. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
  400. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  401. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
  402. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  403. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
  404. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  405. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
  406. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  407. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
  408. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  409. package/build/src/start/server/middleware/metroOptions.js +12 -2
  410. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  411. package/build/src/start/server/middleware/resolveAssets.js +17 -5
  412. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  413. package/build/src/start/server/middleware/resolvePlatform.js +8 -2
  414. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  415. package/build/src/start/server/platformBundlers.js +8 -2
  416. package/build/src/start/server/platformBundlers.js.map +1 -1
  417. package/build/src/start/server/serverLogLikeMetro.js +37 -13
  418. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  419. package/build/src/start/server/type-generation/expo-env.js +16 -4
  420. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  421. package/build/src/start/server/type-generation/routes.js +91 -37
  422. package/build/src/start/server/type-generation/routes.js.map +1 -1
  423. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
  424. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  425. package/build/src/start/server/type-generation/tsconfig.js +27 -9
  426. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  427. package/build/src/start/server/webTemplate.js +26 -8
  428. package/build/src/start/server/webTemplate.js.map +1 -1
  429. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
  430. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  431. package/build/src/start/server/webpack/compile.js +17 -5
  432. package/build/src/start/server/webpack/compile.js.map +1 -1
  433. package/build/src/start/server/webpack/resolveFromProject.js +8 -2
  434. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  435. package/build/src/start/server/webpack/tls.js +35 -11
  436. package/build/src/start/server/webpack/tls.js.map +1 -1
  437. package/build/src/start/startAsync.js +36 -11
  438. package/build/src/start/startAsync.js.map +1 -1
  439. package/build/src/utils/FileNotifier.js +32 -8
  440. package/build/src/utils/FileNotifier.js.map +1 -1
  441. package/build/src/utils/analytics/getDevClientProperties.js +26 -8
  442. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  443. package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
  444. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  445. package/build/src/utils/args.js +32 -8
  446. package/build/src/utils/args.js.map +1 -1
  447. package/build/src/utils/cocoapods.js +64 -28
  448. package/build/src/utils/cocoapods.js.map +1 -1
  449. package/build/src/utils/codesigning.js +79 -29
  450. package/build/src/utils/codesigning.js.map +1 -1
  451. package/build/src/utils/createFileTransform.js +24 -69
  452. package/build/src/utils/createFileTransform.js.map +1 -1
  453. package/build/src/utils/dir.js +33 -26
  454. package/build/src/utils/dir.js.map +1 -1
  455. package/build/src/utils/downloadAppAsync.js +40 -10
  456. package/build/src/utils/downloadAppAsync.js.map +1 -1
  457. package/build/src/utils/downloadExpoGoAsync.js +26 -11
  458. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  459. package/build/src/utils/editor.js +18 -6
  460. package/build/src/utils/editor.js.map +1 -1
  461. package/build/src/utils/env.js +40 -31
  462. package/build/src/utils/env.js.map +1 -1
  463. package/build/src/utils/errors.js +20 -5
  464. package/build/src/utils/errors.js.map +1 -1
  465. package/build/src/utils/findUp.js +18 -6
  466. package/build/src/utils/findUp.js.map +1 -1
  467. package/build/src/utils/getOrPromptApplicationId.js +19 -7
  468. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  469. package/build/src/utils/getRunningProcess.js +18 -6
  470. package/build/src/utils/getRunningProcess.js.map +1 -1
  471. package/build/src/utils/git.js +18 -6
  472. package/build/src/utils/git.js.map +1 -1
  473. package/build/src/utils/glob.js +9 -3
  474. package/build/src/utils/glob.js.map +1 -1
  475. package/build/src/utils/ip.js +8 -2
  476. package/build/src/utils/ip.js.map +1 -1
  477. package/build/src/utils/isModuleSymlinked.js +16 -4
  478. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  479. package/build/src/utils/link.js +18 -6
  480. package/build/src/utils/link.js.map +1 -1
  481. package/build/src/utils/mergeGitIgnorePaths.js +25 -13
  482. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  483. package/build/src/utils/modifyConfigAsync.js +18 -6
  484. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  485. package/build/src/utils/modifyConfigPlugins.js +8 -2
  486. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  487. package/build/src/utils/nodeEnv.js +2 -0
  488. package/build/src/utils/nodeEnv.js.map +1 -1
  489. package/build/src/utils/nodeModules.js +23 -5
  490. package/build/src/utils/nodeModules.js.map +1 -1
  491. package/build/src/utils/npm.js +64 -17
  492. package/build/src/utils/npm.js.map +1 -1
  493. package/build/src/utils/open.js +9 -3
  494. package/build/src/utils/open.js.map +1 -1
  495. package/build/src/utils/ora.js +16 -4
  496. package/build/src/utils/ora.js.map +1 -1
  497. package/build/src/utils/plist.js +24 -6
  498. package/build/src/utils/plist.js.map +1 -1
  499. package/build/src/utils/port.js +22 -10
  500. package/build/src/utils/port.js.map +1 -1
  501. package/build/src/utils/profile.js +8 -2
  502. package/build/src/utils/profile.js.map +1 -1
  503. package/build/src/utils/progress.js +8 -2
  504. package/build/src/utils/progress.js.map +1 -1
  505. package/build/src/utils/prompts.js +16 -4
  506. package/build/src/utils/prompts.js.map +1 -1
  507. package/build/src/utils/scheme.js +75 -23
  508. package/build/src/utils/scheme.js.map +1 -1
  509. package/build/src/utils/tar.js +16 -4
  510. package/build/src/utils/tar.js.map +1 -1
  511. package/build/src/utils/telemetry/DetachedClient.js +87 -0
  512. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  513. package/build/src/utils/telemetry/RudderClient.js +98 -0
  514. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  515. package/build/src/utils/telemetry/flushDetached.js +43 -0
  516. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  517. package/build/src/utils/telemetry/getContext.js +92 -0
  518. package/build/src/utils/telemetry/getContext.js.map +1 -0
  519. package/build/src/utils/telemetry/index.js +32 -0
  520. package/build/src/utils/telemetry/index.js.map +1 -0
  521. package/build/src/utils/telemetry/types.js +6 -0
  522. package/build/src/utils/telemetry/types.js.map +1 -0
  523. package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
  524. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  525. package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
  526. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  527. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
  528. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  529. package/build/src/utils/url.js +19 -10
  530. package/build/src/utils/url.js.map +1 -1
  531. package/build/src/utils/validateApplicationId.js +18 -6
  532. package/build/src/utils/validateApplicationId.js.map +1 -1
  533. package/build/src/whoami/whoamiAsync.js +8 -2
  534. package/build/src/whoami/whoamiAsync.js.map +1 -1
  535. package/package.json +15 -16
  536. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  537. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  538. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  539. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  540. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  541. package/build/src/run/android/resolveGradleProps.js +0 -37
  542. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  543. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  544. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  545. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  546. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  547. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  548. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  549. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  550. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  551. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  552. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  553. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  554. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  555. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  556. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  557. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  558. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  559. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  560. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  561. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  562. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  563. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  564. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  565. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  566. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  567. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  568. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  569. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  570. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/start/server/type-generation/__typetests__/fixtures/basic.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable import/export */\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport type { LinkProps as OriginalLinkProps } from 'expo-router/build/link/Link';\nimport type { Router as OriginalRouter } from 'expo-router/build/types';\nexport * from 'expo-router/build';\n\n// prettier-ignore\ntype StaticRoutes = `/apple` | `/banana`;\n// prettier-ignore\ntype DynamicRoutes<T extends string> = `/colors/${SingleRoutePart<T>}` | `/animals/${CatchAllRoutePart<T>}` | `/mix/${SingleRoutePart<T>}/${SingleRoutePart<T>}/${CatchAllRoutePart<T>}`;\n// prettier-ignore\ntype DynamicRouteTemplate = `/colors/[color]` | `/animals/[...animal]` | `/mix/[fruit]/[color]/[...animals]`;\n\ntype RelativePathString = `./${string}` | `../${string}` | '..';\ntype AbsoluteRoute = DynamicRouteTemplate | StaticRoutes;\ntype ExternalPathString = `${string}:${string}`;\n\ntype ExpoRouterRoutes = DynamicRouteTemplate | StaticRoutes | RelativePathString;\nexport type AllRoutes = ExpoRouterRoutes | ExternalPathString;\n\n/****************\n * Route Utils *\n ****************/\n\ntype SearchOrHash = `?${string}` | `#${string}`;\ntype UnknownInputParams = Record<string, string | number | (string | number)[]>;\ntype UnknownOutputParams = Record<string, string | string[]>;\n\n/**\n * Return only the RoutePart of a string. If the string has multiple parts return never\n *\n * string | type\n * ---------|------\n * 123 | 123\n * /123/abc | never\n * 123?abc | never\n * ./123 | never\n * /123 | never\n * 123/../ | never\n */\ntype SingleRoutePart<S extends string> = S extends `${string}/${string}`\n ? never\n : S extends `${string}${SearchOrHash}`\n ? never\n : S extends ''\n ? never\n : S extends `(${string})`\n ? never\n : S extends `[${string}]`\n ? never\n : S;\n\n/**\n * Return only the CatchAll router part. If the string has search parameters or a hash return never\n */\ntype CatchAllRoutePart<S extends string> = S extends `${string}${SearchOrHash}`\n ? never\n : S extends ''\n ? never\n : S extends `${string}(${string})${string}`\n ? never\n : S extends `${string}[${string}]${string}`\n ? never\n : S;\n\n// type OptionalCatchAllRoutePart<S extends string> = S extends `${string}${SearchOrHash}` ? never : S\n\n/**\n * Return the name of a route parameter\n * '[test]' -> 'test'\n * 'test' -> never\n * '[...test]' -> '...test'\n */\ntype IsParameter<Part> = Part extends `[${infer ParamName}]` ? ParamName : never;\n\n/**\n * Return a union of all parameter names. If there are no names return never\n *\n * /[test] -> 'test'\n * /[abc]/[...def] -> 'abc'|'...def'\n */\ntype ParameterNames<Path> = Path extends `${infer PartA}/${infer PartB}`\n ? IsParameter<PartA> | ParameterNames<PartB>\n : IsParameter<Path>;\n\n/**\n * Returns all segements of a route.\n *\n * /(group)/123/abc/[id]/[...rest] -> ['(group)', '123', 'abc', '[id]', '[...rest]'\n */\ntype RouteSegments<Path> = Path extends `${infer PartA}/${infer PartB}`\n ? PartA extends '' | '.'\n ? [...RouteSegments<PartB>]\n : [PartA, ...RouteSegments<PartB>]\n : Path extends ''\n ? []\n : [Path];\n\n/**\n * Returns a Record of the routes parameters as strings and CatchAll parameters\n *\n * There are two versions, input and output, as you can input 'string | number' but\n * the output will always be 'string'\n *\n * /[id]/[...rest] -> { id: string, rest: string[] }\n * /no-params -> {}\n */\ntype InputRouteParams<Path> = {\n [Key in ParameterNames<Path> as Key extends `...${infer Name}`\n ? Name\n : Key]: Key extends `...${string}` ? (string | number)[] : string | number;\n} & UnknownInputParams;\n\ntype OutputRouteParams<Path> = {\n [Key in ParameterNames<Path> as Key extends `...${infer Name}`\n ? Name\n : Key]: Key extends `...${string}` ? string[] : string;\n} & UnknownOutputParams;\n\n/**\n * Returns the search parameters for a route.\n */\nexport type SearchParams<T extends AllRoutes> = T extends DynamicRouteTemplate\n ? OutputRouteParams<T>\n : T extends StaticRoutes\n ? never\n : UnknownOutputParams;\n\n/**\n * Route is mostly used as part of Href to ensure that a valid route is provided\n *\n * Given a dynamic route, this will return never. This is helpful for conditional logic\n *\n * /test -> /test, /test2, etc\n * /test/[abc] -> never\n * /test/resolve -> /test, /test2, etc\n *\n * Note that if we provide a value for [abc] then the route is allowed\n *\n * This is named Route to prevent confusion, as users they will often see it in tooltips\n */\nexport type Route<T> = T extends string\n ? T extends DynamicRouteTemplate\n ? never\n :\n | StaticRoutes\n | RelativePathString\n | ExternalPathString\n | (T extends `${infer P}${SearchOrHash}`\n ? P extends DynamicRoutes<infer _>\n ? T\n : never\n : T extends DynamicRoutes<infer _>\n ? T\n : never)\n : never;\n\n/*********\n * Href *\n *********/\n\nexport type Href<T> = T extends Record<'pathname', string> ? HrefObject<T> : Route<T>;\n\nexport type HrefObject<\n R extends Record<'pathname', string>,\n P = R['pathname'],\n> = P extends DynamicRouteTemplate\n ? { pathname: P; params: InputRouteParams<P> }\n : P extends Route<P>\n ? { pathname: Route<P> | DynamicRouteTemplate; params?: never | InputRouteParams<never> }\n : never;\n\n/***********************\n * Expo Router Exports *\n ***********************/\n\nexport type Router = Omit<OriginalRouter, 'push' | 'replace' | 'setParams'> & {\n /** Navigate to the provided href. */\n push: <T>(href: Href<T>) => void;\n /** Navigate to route without appending to the history. */\n replace: <T>(href: Href<T>) => void;\n /** Update the current route query params. */\n setParams: <T = ''>(params?: T extends '' ? Record<string, string> : InputRouteParams<T>) => void;\n};\n\n/** The imperative router. */\nexport declare const router: Router;\n\n/************\n * <Link /> *\n ************/\nexport interface LinkProps<T> extends OriginalLinkProps {\n href: Href<T>;\n}\n\nexport interface LinkComponent {\n <T>(props: React.PropsWithChildren<LinkProps<T>>): JSX.Element;\n /** Helper method to resolve an Href object into a string. */\n resolveHref: <T>(href: Href<T>) => string;\n}\n\n/**\n * Component to render link to another route using a path.\n * Uses an anchor tag on the web.\n *\n * @param props.href Absolute path to route (e.g. `/feeds/hot`).\n * @param props.replace Should replace the current route without adding to the history.\n * @param props.asChild Forward props to child component. Useful for custom buttons.\n * @param props.children Child elements to render the content.\n * @param props.className On web, this sets the HTML `class` directly. On native, this can be used with CSS interop tools like Nativewind.\n */\nexport declare const Link: LinkComponent;\n\n/** Redirects to the href as soon as the component is mounted. */\nexport declare const Redirect: <T>(\n props: React.PropsWithChildren<{ href: Href<T> }>\n) => JSX.Element;\n\n/************\n * Hooks *\n ************/\nexport declare function useRouter(): Router;\n\nexport declare function useLocalSearchParams<\n T extends AllRoutes | UnknownOutputParams = UnknownOutputParams,\n>(): T extends AllRoutes ? SearchParams<T> : T;\n\n/** @deprecated renamed to `useGlobalSearchParams` */\nexport declare function useSearchParams<\n T extends AllRoutes | UnknownOutputParams = UnknownOutputParams,\n>(): T extends AllRoutes ? SearchParams<T> : T;\n\nexport declare function useGlobalSearchParams<\n T extends AllRoutes | UnknownOutputParams = UnknownOutputParams,\n>(): T extends AllRoutes ? SearchParams<T> : T;\n\nexport declare function useSegments<\n T extends AbsoluteRoute | RouteSegments<AbsoluteRoute> | RelativePathString,\n>(): T extends AbsoluteRoute ? RouteSegments<T> : T extends string ? string[] : T;\n"],"names":[],"mappings":"AAIA;;;;6CAEc,mBAAmB;AAAjC,YAAA,MAAkC;;2CAAlC,MAAkC;;;;mBAAlC,MAAkC;;;EAAA"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- exports.default = _default;
6
- var _promises = require("fs/promises");
7
- var _path = require("path");
8
- var _routes = require("../routes");
9
- const fixtures = {
10
- basic: {
11
- staticRoutes: [
12
- "/apple",
13
- "/banana"
14
- ],
15
- dynamicRoutes: [
16
- "/colors/${SingleRoutePart<T>}",
17
- "/animals/${CatchAllRoutePart<T>}",
18
- "/mix/${SingleRoutePart<T>}/${SingleRoutePart<T>}/${CatchAllRoutePart<T>}",
19
- ],
20
- dynamicRouteTemplates: [
21
- "/colors/[color]",
22
- "/animals/[...animal]",
23
- "/mix/[fruit]/[color]/[...animals]",
24
- ]
25
- }
26
- };
27
- async function _default() {
28
- await Promise.all(Object.entries(fixtures).map(async ([key, value])=>{
29
- const template = (0, _routes).getTemplateString(new Set(value.staticRoutes), new Set(value.dynamicRoutes), new Set(value.dynamicRouteTemplates))// The Template produces a global module .d.ts declaration
30
- // These replacements turn it into a local module
31
- .replaceAll(/^ /gm, "").replace(/declare module "expo-router" {/, "").replaceAll(/export function/g, "export declare function").replaceAll(/export const/g, "export declare const")// Remove the last `}`
32
- .slice(0, -2);
33
- return (0, _promises).writeFile((0, _path).join(__dirname, "./fixtures/", key + ".ts"), template);
34
- }));
35
- console.log("done");
36
- }
37
-
38
- //# sourceMappingURL=generateFixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/type-generation/__typetests__/generateFixtures.ts"],"sourcesContent":["import { writeFile } from 'fs/promises';\nimport { join } from 'path';\n\nimport { getTemplateString } from '../routes';\n\ntype Fixture = {\n staticRoutes: string[];\n dynamicRoutes: string[];\n dynamicRouteTemplates: string[];\n};\n\nconst fixtures: Record<string, Fixture> = {\n basic: {\n staticRoutes: ['/apple', '/banana'],\n dynamicRoutes: [\n '/colors/${SingleRoutePart<T>}',\n '/animals/${CatchAllRoutePart<T>}',\n '/mix/${SingleRoutePart<T>}/${SingleRoutePart<T>}/${CatchAllRoutePart<T>}',\n ],\n dynamicRouteTemplates: [\n '/colors/[color]',\n '/animals/[...animal]',\n '/mix/[fruit]/[color]/[...animals]',\n ],\n },\n};\n\nexport default async function () {\n await Promise.all(\n Object.entries(fixtures).map(async ([key, value]) => {\n const template = getTemplateString(\n new Set(value.staticRoutes),\n new Set(value.dynamicRoutes),\n new Set(value.dynamicRouteTemplates)\n )\n // The Template produces a global module .d.ts declaration\n // These replacements turn it into a local module\n .replaceAll(/^ /gm, '')\n .replace(/declare module \"expo-router\" {/, '')\n .replaceAll(/export function/g, 'export declare function')\n .replaceAll(/export const/g, 'export declare const')\n // Remove the last `}`\n .slice(0, -2);\n\n return writeFile(join(__dirname, './fixtures/', key + '.ts'), template);\n })\n );\n\n console.log('done');\n}\n"],"names":["fixtures","basic","staticRoutes","dynamicRoutes","dynamicRouteTemplates","Promise","all","Object","entries","map","key","value","template","getTemplateString","Set","replaceAll","replace","slice","writeFile","join","__dirname","console","log"],"mappings":"AAAA;;;;;AAA0B,IAAA,SAAa,WAAb,aAAa,CAAA;AAClB,IAAA,KAAM,WAAN,MAAM,CAAA;AAEO,IAAA,OAAW,WAAX,WAAW,CAAA;AAQ7C,MAAMA,QAAQ,GAA4B;IACxCC,KAAK,EAAE;QACLC,YAAY,EAAE;YAAC,QAAQ;YAAE,SAAS;SAAC;QACnCC,aAAa,EAAE;YACb,+BAA+B;YAC/B,kCAAkC;YAClC,0EAA0E;SAC3E;QACDC,qBAAqB,EAAE;YACrB,iBAAiB;YACjB,sBAAsB;YACtB,mCAAmC;SACpC;KACF;CACF,AAAC;AAEa,0BAAkB;IAC/B,MAAMC,OAAO,CAACC,GAAG,CACfC,MAAM,CAACC,OAAO,CAACR,QAAQ,CAAC,CAACS,GAAG,CAAC,OAAO,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAK;QACnD,MAAMC,QAAQ,GAAGC,CAAAA,GAAAA,OAAiB,AAIjC,CAAA,kBAJiC,CAChC,IAAIC,GAAG,CAACH,KAAK,CAACT,YAAY,CAAC,EAC3B,IAAIY,GAAG,CAACH,KAAK,CAACR,aAAa,CAAC,EAC5B,IAAIW,GAAG,CAACH,KAAK,CAACP,qBAAqB,CAAC,CACrC,AACC,0DAA0D;QAC1D,iDAAiD;SAChDW,UAAU,UAAU,EAAE,CAAC,CACvBC,OAAO,mCAAmC,EAAE,CAAC,CAC7CD,UAAU,qBAAqB,yBAAyB,CAAC,CACzDA,UAAU,kBAAkB,sBAAsB,CAAC,AACpD,sBAAsB;SACrBE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,AAAC;QAEhB,OAAOC,CAAAA,GAAAA,SAAS,AAAuD,CAAA,UAAvD,CAACC,CAAAA,GAAAA,KAAI,AAAuC,CAAA,KAAvC,CAACC,SAAS,EAAE,aAAa,EAAEV,GAAG,GAAG,KAAK,CAAC,EAAEE,QAAQ,CAAC,CAAC;KACzE,CAAC,CACH,CAAC;IAEFS,OAAO,CAACC,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB"}
@@ -1,184 +0,0 @@
1
- "use strict";
2
- var _tsdLite = require("tsd-lite");
3
- var _basic = require("./fixtures/basic");
4
- // eslint-disable-next-line react-hooks/rules-of-hooks
5
- const router = (0, _basic).useRouter();
6
- describe("router.push()", ()=>{
7
- // router.push will return void when the type matches, otherwise it should error
8
- describe("href", ()=>{
9
- it("will error on non-urls", ()=>{
10
- (0, _tsdLite).expectError(router.push("should-error"));
11
- });
12
- it("can accept an absolute url", ()=>{
13
- (0, _tsdLite).expectType(router.push("/apple"));
14
- (0, _tsdLite).expectType(router.push("/banana"));
15
- });
16
- it("can accept a ANY relative url", ()=>{
17
- // We only type-check absolute urls
18
- (0, _tsdLite).expectType(router.push("./this/work/but/is/not/valid"));
19
- });
20
- it("works for dynamic urls", ()=>{
21
- (0, _tsdLite).expectType(router.push("/colors/blue"));
22
- });
23
- it("works for CatchAll routes", ()=>{
24
- (0, _tsdLite).expectType(router.push("/animals/bear"));
25
- (0, _tsdLite).expectType(router.push("/animals/bear/cat/dog"));
26
- (0, _tsdLite).expectType(router.push("/mix/apple/blue/cat/dog"));
27
- });
28
- it.skip("works for optional CatchAll routes", ()=>{
29
- // CatchAll routes are not currently optional
30
- // expectType<void>(router.push('/animals/'));
31
- });
32
- it("will error when providing extra parameters", ()=>{
33
- (0, _tsdLite).expectError(router.push("/colors/blue/test"));
34
- });
35
- it("will error when providing too few parameters", ()=>{
36
- (0, _tsdLite).expectError(router.push("/mix/apple"));
37
- (0, _tsdLite).expectError(router.push("/mix/apple/cat"));
38
- });
39
- });
40
- describe("HrefObject", ()=>{
41
- it("will error on non-urls", ()=>{
42
- (0, _tsdLite).expectError(router.push({
43
- pathname: "should-error"
44
- }));
45
- });
46
- it("can accept an absolute url", ()=>{
47
- (0, _tsdLite).expectType(router.push({
48
- pathname: "/apple"
49
- }));
50
- (0, _tsdLite).expectType(router.push({
51
- pathname: "/banana"
52
- }));
53
- });
54
- it("can accept a ANY relative url", ()=>{
55
- // We only type-check absolute urls
56
- (0, _tsdLite).expectType(router.push({
57
- pathname: "./this/work/but/is/not/valid"
58
- }));
59
- });
60
- it("works for dynamic urls", ()=>{
61
- (0, _tsdLite).expectType(router.push({
62
- pathname: "/colors/[color]",
63
- params: {
64
- color: "blue"
65
- }
66
- }));
67
- });
68
- it("requires a valid pathname", ()=>{
69
- (0, _tsdLite).expectError(router.push({
70
- pathname: "/colors/[invalid]",
71
- params: {
72
- color: "blue"
73
- }
74
- }));
75
- });
76
- it("requires a valid param", ()=>{
77
- (0, _tsdLite).expectError(router.push({
78
- pathname: "/colors/[color]",
79
- params: {
80
- invalid: "blue"
81
- }
82
- }));
83
- });
84
- it("works for catch all routes", ()=>{
85
- (0, _tsdLite).expectType(router.push({
86
- pathname: "/animals/[...animal]",
87
- params: {
88
- animal: [
89
- "cat",
90
- "dog"
91
- ]
92
- }
93
- }));
94
- });
95
- it("allows numeric inputs", ()=>{
96
- (0, _tsdLite).expectType(router.push({
97
- pathname: "/mix/[fruit]/[color]/[...animals]",
98
- params: {
99
- color: 1,
100
- fruit: "apple",
101
- animals: [
102
- 2,
103
- "cat"
104
- ]
105
- }
106
- }));
107
- });
108
- it("requires an array for catch all routes", ()=>{
109
- (0, _tsdLite).expectError(router.push({
110
- pathname: "/animals/[...animal]",
111
- params: {
112
- animal: "cat"
113
- }
114
- }));
115
- });
116
- it("works for mixed routes", ()=>{
117
- (0, _tsdLite).expectType(router.push({
118
- pathname: "/mix/[fruit]/[color]/[...animals]",
119
- params: {
120
- color: "red",
121
- fruit: "apple",
122
- animals: []
123
- }
124
- }));
125
- });
126
- it("requires all params in mixed routes", ()=>{
127
- (0, _tsdLite).expectError(router.push({
128
- pathname: "/mix/[fruit]/[color]/[...animals]",
129
- params: {
130
- color: "red",
131
- animals: [
132
- "cat",
133
- "dog"
134
- ]
135
- }
136
- }));
137
- });
138
- });
139
- });
140
- describe("useSearchParams", ()=>{
141
- (0, _tsdLite).expectType((0, _basic).useSearchParams());
142
- (0, _tsdLite).expectType((0, _basic).useSearchParams());
143
- (0, _tsdLite).expectError((0, _basic).useSearchParams());
144
- (0, _tsdLite).expectError((0, _basic).useSearchParams());
145
- });
146
- describe("useLocalSearchParams", ()=>{
147
- (0, _tsdLite).expectType((0, _basic).useLocalSearchParams());
148
- (0, _tsdLite).expectType((0, _basic).useLocalSearchParams());
149
- (0, _tsdLite).expectError((0, _basic).useSearchParams());
150
- (0, _tsdLite).expectError((0, _basic).useSearchParams());
151
- });
152
- describe("useGlobalSearchParams", ()=>{
153
- (0, _tsdLite).expectType((0, _basic).useGlobalSearchParams());
154
- (0, _tsdLite).expectType((0, _basic).useGlobalSearchParams());
155
- (0, _tsdLite).expectError((0, _basic).useGlobalSearchParams());
156
- (0, _tsdLite).expectError((0, _basic).useGlobalSearchParams());
157
- });
158
- describe("useSegments", ()=>{
159
- it("can accept an absolute url", ()=>{
160
- (0, _tsdLite).expectType((0, _basic).useSegments());
161
- });
162
- it("only accepts valid possible urls", ()=>{
163
- (0, _tsdLite).expectError((0, _basic).useSegments());
164
- });
165
- it("can accept an array of segments", ()=>{
166
- (0, _tsdLite).expectType((0, _basic).useSegments());
167
- });
168
- it("only accepts valid possible segments", ()=>{
169
- (0, _tsdLite).expectError((0, _basic).useSegments());
170
- });
171
- });
172
- describe("external routes", ()=>{
173
- it("can accept any external url", ()=>{
174
- (0, _tsdLite).expectType(router.push("http://expo.dev"));
175
- });
176
- it("can accept any schema url", ()=>{
177
- (0, _tsdLite).expectType(router.push("custom-schema://expo.dev"));
178
- });
179
- it("can accept mailto url", ()=>{
180
- (0, _tsdLite).expectType(router.push("mailto:test@test.com"));
181
- });
182
- });
183
-
184
- //# sourceMappingURL=route.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/type-generation/__typetests__/route.test.ts"],"sourcesContent":["import { expectType, expectError } from 'tsd-lite';\n\nimport {\n useGlobalSearchParams,\n useSegments,\n useRouter,\n useSearchParams,\n useLocalSearchParams,\n} from './fixtures/basic';\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst router = useRouter();\n\ndescribe('router.push()', () => {\n // router.push will return void when the type matches, otherwise it should error\n\n describe('href', () => {\n it('will error on non-urls', () => {\n expectError(router.push('should-error'));\n });\n\n it('can accept an absolute url', () => {\n expectType<void>(router.push('/apple'));\n expectType<void>(router.push('/banana'));\n });\n\n it('can accept a ANY relative url', () => {\n // We only type-check absolute urls\n expectType<void>(router.push('./this/work/but/is/not/valid'));\n });\n\n it('works for dynamic urls', () => {\n expectType<void>(router.push('/colors/blue'));\n });\n\n it('works for CatchAll routes', () => {\n expectType<void>(router.push('/animals/bear'));\n expectType<void>(router.push('/animals/bear/cat/dog'));\n expectType<void>(router.push('/mix/apple/blue/cat/dog'));\n });\n\n it.skip('works for optional CatchAll routes', () => {\n // CatchAll routes are not currently optional\n // expectType<void>(router.push('/animals/'));\n });\n\n it('will error when providing extra parameters', () => {\n expectError(router.push('/colors/blue/test'));\n });\n\n it('will error when providing too few parameters', () => {\n expectError(router.push('/mix/apple'));\n expectError(router.push('/mix/apple/cat'));\n });\n });\n\n describe('HrefObject', () => {\n it('will error on non-urls', () => {\n expectError(router.push({ pathname: 'should-error' }));\n });\n\n it('can accept an absolute url', () => {\n expectType<void>(router.push({ pathname: '/apple' }));\n expectType<void>(router.push({ pathname: '/banana' }));\n });\n\n it('can accept a ANY relative url', () => {\n // We only type-check absolute urls\n expectType<void>(router.push({ pathname: './this/work/but/is/not/valid' }));\n });\n\n it('works for dynamic urls', () => {\n expectType<void>(\n router.push({\n pathname: '/colors/[color]',\n params: { color: 'blue' },\n })\n );\n });\n\n it('requires a valid pathname', () => {\n expectError(\n router.push({\n pathname: '/colors/[invalid]',\n params: { color: 'blue' },\n })\n );\n });\n\n it('requires a valid param', () => {\n expectError(\n router.push({\n pathname: '/colors/[color]',\n params: { invalid: 'blue' },\n })\n );\n });\n\n it('works for catch all routes', () => {\n expectType<void>(\n router.push({\n pathname: '/animals/[...animal]',\n params: { animal: ['cat', 'dog'] },\n })\n );\n });\n\n it('allows numeric inputs', () => {\n expectType<void>(\n router.push({\n pathname: '/mix/[fruit]/[color]/[...animals]',\n params: { color: 1, fruit: 'apple', animals: [2, 'cat'] },\n })\n );\n });\n\n it('requires an array for catch all routes', () => {\n expectError(\n router.push({\n pathname: '/animals/[...animal]',\n params: { animal: 'cat' },\n })\n );\n });\n\n it('works for mixed routes', () => {\n expectType<void>(\n router.push({\n pathname: '/mix/[fruit]/[color]/[...animals]',\n params: { color: 'red', fruit: 'apple', animals: [] },\n })\n );\n });\n\n it('requires all params in mixed routes', () => {\n expectError(\n router.push({\n pathname: '/mix/[fruit]/[color]/[...animals]',\n params: { color: 'red', animals: ['cat', 'dog'] },\n })\n );\n });\n });\n});\n\ndescribe('useSearchParams', () => {\n expectType<Record<'color', string>>(useSearchParams<Record<'color', string>>());\n expectType<Record<'color', string> & Record<string, string | string[]>>(\n useSearchParams<'/colors/[color]'>()\n );\n\n expectError(useSearchParams<'/invalid'>());\n expectError(useSearchParams<Record<'custom', Function>>());\n});\n\ndescribe('useLocalSearchParams', () => {\n expectType<Record<'color', string>>(useLocalSearchParams<Record<'color', string>>());\n expectType<Record<'color', string> & Record<string, string | string[]>>(\n useLocalSearchParams<'/colors/[color]'>()\n );\n\n expectError(useSearchParams<'/invalid'>());\n expectError(useSearchParams<Record<'custom', Function>>());\n});\n\ndescribe('useGlobalSearchParams', () => {\n expectType<Record<'color', string>>(useGlobalSearchParams<Record<'color', string>>());\n expectType<Record<'color', string> & Record<string, string | string[]>>(\n useGlobalSearchParams<'/colors/[color]'>()\n );\n\n expectError(useGlobalSearchParams<'/invalid'>());\n expectError(useGlobalSearchParams<Record<'custom', Function>>());\n});\n\ndescribe('useSegments', () => {\n it('can accept an absolute url', () => {\n expectType<['apple']>(useSegments<'/apple'>());\n });\n\n it('only accepts valid possible urls', () => {\n expectError(useSegments<'/invalid'>());\n });\n\n it('can accept an array of segments', () => {\n expectType<['apple']>(useSegments<['apple']>());\n });\n\n it('only accepts valid possible segments', () => {\n expectError(useSegments<['invalid segment']>());\n });\n});\n\ndescribe('external routes', () => {\n it('can accept any external url', () => {\n expectType<void>(router.push('http://expo.dev'));\n });\n\n it('can accept any schema url', () => {\n expectType<void>(router.push('custom-schema://expo.dev'));\n });\n\n it('can accept mailto url', () => {\n expectType<void>(router.push('mailto:test@test.com'));\n });\n});\n"],"names":["router","useRouter","describe","it","expectError","push","expectType","skip","pathname","params","color","invalid","animal","fruit","animals","useSearchParams","useLocalSearchParams","useGlobalSearchParams","useSegments"],"mappings":"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"}
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- exports.resetInternalStateForTesting = resetInternalStateForTesting;
6
- exports.getRudderAnalyticsClient = getRudderAnalyticsClient;
7
- exports.setUserDataAsync = setUserDataAsync;
8
- exports.logEventAsync = logEventAsync;
9
- exports.getContext = getContext;
10
- var _rudderSdkNode = _interopRequireDefault(require("@expo/rudder-sdk-node"));
11
- var ciInfo = _interopRequireWildcard(require("ci-info"));
12
- var _os = _interopRequireDefault(require("os"));
13
- var _userSettings = _interopRequireDefault(require("../../api/user/UserSettings"));
14
- var _user = require("../../api/user/user");
15
- var _env = require("../env");
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- function _interopRequireWildcard(obj) {
22
- if (obj && obj.__esModule) {
23
- return obj;
24
- } else {
25
- var newObj = {};
26
- if (obj != null) {
27
- for(var key in obj){
28
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
29
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
30
- if (desc.get || desc.set) {
31
- Object.defineProperty(newObj, key, desc);
32
- } else {
33
- newObj[key] = obj[key];
34
- }
35
- }
36
- }
37
- }
38
- newObj.default = obj;
39
- return newObj;
40
- }
41
- }
42
- const PLATFORM_TO_ANALYTICS_PLATFORM = {
43
- darwin: "Mac",
44
- win32: "Windows",
45
- linux: "Linux"
46
- };
47
- let client = null;
48
- let identified = false;
49
- let identifyData = null;
50
- function resetInternalStateForTesting() {
51
- identified = false;
52
- identifyData = null;
53
- client = null;
54
- }
55
- function getRudderAnalyticsClient() {
56
- if (client) {
57
- return client;
58
- }
59
- client = new _rudderSdkNode.default(_env.env.EXPO_STAGING || _env.env.EXPO_LOCAL ? "24TKICqYKilXM480mA7ktgVDdea" : "24TKR7CQAaGgIrLTgu3Fp4OdOkI", "https://cdp.expo.dev/v1/batch", {
60
- flushInterval: 300
61
- });
62
- // Install flush on exit...
63
- process.on("SIGINT", ()=>{
64
- return client == null ? void 0 : client.flush == null ? void 0 : client.flush();
65
- });
66
- process.on("SIGTERM", ()=>{
67
- return client == null ? void 0 : client.flush == null ? void 0 : client.flush();
68
- });
69
- return client;
70
- }
71
- async function setUserDataAsync(userId, traits) {
72
- if (_env.env.EXPO_NO_TELEMETRY) {
73
- return;
74
- }
75
- const deviceId = await _userSettings.default.getAnonymousIdentifierAsync();
76
- identifyData = {
77
- userId,
78
- deviceId,
79
- traits
80
- };
81
- identifyIfNotYetIdentified();
82
- }
83
- async function logEventAsync(event, properties = {}) {
84
- if (_env.env.EXPO_NO_TELEMETRY) {
85
- return;
86
- }
87
- // this has the side effect of calling `setUserData` which fetches the user and populates identifyData
88
- try {
89
- await (0, _user).getUserAsync();
90
- } catch {}
91
- identifyIfNotYetIdentified();
92
- if (!identifyData) {
93
- return;
94
- }
95
- const { userId , deviceId } = identifyData;
96
- const commonEventProperties = {
97
- source_version: "0.17.10",
98
- source: "expo"
99
- };
100
- const identity = {
101
- userId,
102
- anonymousId: deviceId
103
- };
104
- getRudderAnalyticsClient().track({
105
- event,
106
- properties: {
107
- ...properties,
108
- ...commonEventProperties
109
- },
110
- ...identity,
111
- context: getContext()
112
- });
113
- }
114
- function identifyIfNotYetIdentified() {
115
- if (_env.env.EXPO_NO_TELEMETRY || identified || !identifyData) {
116
- return;
117
- }
118
- getRudderAnalyticsClient().identify({
119
- userId: identifyData.userId,
120
- anonymousId: identifyData.deviceId,
121
- traits: identifyData.traits
122
- });
123
- identified = true;
124
- }
125
- function getContext() {
126
- const platform = PLATFORM_TO_ANALYTICS_PLATFORM[_os.default.platform()] || _os.default.platform();
127
- return {
128
- os: {
129
- name: platform,
130
- version: _os.default.release()
131
- },
132
- device: {
133
- type: platform,
134
- model: platform
135
- },
136
- app: {
137
- name: "expo",
138
- version: "0.17.10"
139
- },
140
- ci: ciInfo.isCI ? {
141
- name: ciInfo.name,
142
- isPr: ciInfo.isPR
143
- } : undefined
144
- };
145
- }
146
-
147
- //# sourceMappingURL=rudderstackClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/utils/analytics/rudderstackClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\nimport * as ciInfo from 'ci-info';\nimport os from 'os';\n\nimport UserSettings from '../../api/user/UserSettings';\nimport { getUserAsync } from '../../api/user/user';\nimport { env } from '../env';\n\nconst PLATFORM_TO_ANALYTICS_PLATFORM: { [platform: string]: string } = {\n darwin: 'Mac',\n win32: 'Windows',\n linux: 'Linux',\n};\n\nlet client: RudderAnalytics | null = null;\nlet identified = false;\nlet identifyData: {\n userId: string;\n deviceId: string;\n traits: Record<string, any>;\n} | null = null;\n\nexport function resetInternalStateForTesting() {\n identified = false;\n identifyData = null;\n client = null;\n}\n\nexport function getRudderAnalyticsClient(): RudderAnalytics {\n if (client) {\n return client;\n }\n\n client = new RudderAnalytics(\n env.EXPO_STAGING || env.EXPO_LOCAL\n ? '24TKICqYKilXM480mA7ktgVDdea'\n : '24TKR7CQAaGgIrLTgu3Fp4OdOkI', // expo unified\n 'https://cdp.expo.dev/v1/batch',\n {\n flushInterval: 300,\n }\n );\n\n // Install flush on exit...\n process.on('SIGINT', () => client?.flush?.());\n process.on('SIGTERM', () => client?.flush?.());\n\n return client;\n}\n\nexport async function setUserDataAsync(userId: string, traits: Record<string, any>): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n const deviceId = await UserSettings.getAnonymousIdentifierAsync();\n\n identifyData = {\n userId,\n deviceId,\n traits,\n };\n\n identifyIfNotYetIdentified();\n}\n\ntype Event =\n | 'action'\n | 'Open Url on Device'\n | 'Start Project'\n | 'Serve Manifest'\n | 'Serve Expo Updates Manifest'\n | 'dev client start command'\n | 'dev client run command'\n | 'metro config'\n | 'metro debug';\n\n/**\n * Log an event, ensuring the user is identified before logging the event.\n **/\nexport async function logEventAsync(\n event: Event,\n properties: Record<string, any> = {}\n): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n // this has the side effect of calling `setUserData` which fetches the user and populates identifyData\n try {\n await getUserAsync();\n } catch {}\n\n identifyIfNotYetIdentified();\n\n if (!identifyData) {\n return;\n }\n const { userId, deviceId } = identifyData;\n const commonEventProperties = { source_version: process.env.__EXPO_VERSION, source: 'expo' };\n\n const identity = { userId, anonymousId: deviceId };\n getRudderAnalyticsClient().track({\n event,\n properties: { ...properties, ...commonEventProperties },\n ...identity,\n context: getContext(),\n });\n}\n\nfunction identifyIfNotYetIdentified(): void {\n if (env.EXPO_NO_TELEMETRY || identified || !identifyData) {\n return;\n }\n\n getRudderAnalyticsClient().identify({\n userId: identifyData.userId,\n anonymousId: identifyData.deviceId,\n traits: identifyData.traits,\n });\n identified = true;\n}\n\n/** Exposed for testing only */\nexport function getContext(): Record<string, any> {\n const platform = PLATFORM_TO_ANALYTICS_PLATFORM[os.platform()] || os.platform();\n return {\n os: { name: platform, version: os.release() },\n device: { type: platform, model: platform },\n app: { name: 'expo', version: process.env.__EXPO_VERSION },\n ci: ciInfo.isCI ? { name: ciInfo.name, isPr: ciInfo.isPR } : undefined,\n };\n}\n"],"names":["resetInternalStateForTesting","getRudderAnalyticsClient","setUserDataAsync","logEventAsync","getContext","ciInfo","PLATFORM_TO_ANALYTICS_PLATFORM","darwin","win32","linux","client","identified","identifyData","RudderAnalytics","env","EXPO_STAGING","EXPO_LOCAL","flushInterval","process","on","flush","userId","traits","EXPO_NO_TELEMETRY","deviceId","UserSettings","getAnonymousIdentifierAsync","identifyIfNotYetIdentified","event","properties","getUserAsync","commonEventProperties","source_version","__EXPO_VERSION","source","identity","anonymousId","track","context","identify","platform","os","name","version","release","device","type","model","app","ci","isCI","isPr","isPR","undefined"],"mappings":"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"}