expo-dev-launcher 6.0.0-canary-20250404-87e2506 → 6.0.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 (602) hide show
  1. package/CHANGELOG.md +110 -2
  2. package/android/build.gradle +41 -5
  3. package/android/src/debug/AndroidManifest.xml +8 -1
  4. package/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt +50 -23
  5. package/android/src/debug/java/expo/modules/devlauncher/DevLauncherPackageDelegate.kt +1 -3
  6. package/android/src/debug/java/expo/modules/devlauncher/compose/AuthActivity.kt +136 -0
  7. package/android/src/debug/java/expo/modules/devlauncher/compose/BindingView.kt +20 -0
  8. package/android/src/debug/java/expo/modules/devlauncher/compose/DevLauncherBottomTabsNavigator.kt +126 -0
  9. package/android/src/debug/java/expo/modules/devlauncher/compose/Session.kt +33 -0
  10. package/android/src/debug/java/expo/modules/devlauncher/compose/UpdatesModels.kt +14 -0
  11. package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchViewModel.kt +105 -0
  12. package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchesViewModel.kt +113 -0
  13. package/android/src/debug/java/expo/modules/devlauncher/compose/models/CrashReportModel.kt +22 -0
  14. package/android/src/debug/java/expo/modules/devlauncher/compose/models/ErrorViewModel.kt +50 -0
  15. package/android/src/debug/java/expo/modules/devlauncher/compose/models/HomeViewModel.kt +120 -0
  16. package/android/src/debug/java/expo/modules/devlauncher/compose/models/ProfileViewModel.kt +82 -0
  17. package/android/src/debug/java/expo/modules/devlauncher/compose/models/SettingsViewModel.kt +89 -0
  18. package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/Accordion.kt +98 -0
  19. package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/Asyncimage.kt +39 -0
  20. package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/CircularProgressBar.kt +89 -0
  21. package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/DefaultScaffold.kt +25 -0
  22. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/CrashReport.kt +38 -0
  23. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Home.kt +48 -0
  24. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Profile.kt +70 -0
  25. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Routes.kt +20 -0
  26. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Settings.kt +18 -0
  27. package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Updates.kt +95 -0
  28. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchScreen.kt +240 -0
  29. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchesScreen.kt +262 -0
  30. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/CrashReportScreen.kt +191 -0
  31. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/ErrorScreen.kt +79 -0
  32. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/HomeScreen.kt +428 -0
  33. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/NoUpdatesScreen.kt +73 -0
  34. package/android/src/debug/java/expo/modules/devlauncher/compose/screens/SettingsScreen.kt +168 -0
  35. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountAvatar.kt +36 -0
  36. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountSelector.kt +71 -0
  37. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ActionButton.kt +37 -0
  38. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppHeader.kt +114 -0
  39. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppLoadingErrorDialog.kt +81 -0
  40. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomSheet.kt +44 -0
  41. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabBar.kt +75 -0
  42. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabButton.kt +49 -0
  43. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/DevelopmentServerHelp.kt +48 -0
  44. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ProfileLayout.kt +53 -0
  45. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/RunningAppCard.kt +84 -0
  46. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ScreenHeaderContainer.kt +30 -0
  47. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/SectionHeader.kt +20 -0
  48. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ServerUrlInput.kt +79 -0
  49. package/android/src/debug/java/expo/modules/devlauncher/compose/ui/SignUp.kt +49 -0
  50. package/android/src/debug/java/expo/modules/devlauncher/compose/utils/DateFormat.kt +40 -0
  51. package/android/src/debug/java/expo/modules/devlauncher/compose/utils/UpdatesUtils.kt +12 -0
  52. package/android/src/debug/java/expo/modules/devlauncher/compose/utils/WithIsLast.kt +32 -0
  53. package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherReactUtils.kt +9 -9
  54. package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherActivity.kt +14 -105
  55. package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorActivity.kt +32 -81
  56. package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherExpoAppLoader.kt +2 -2
  57. package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherBridgeDevSupportManager.kt +5 -4
  58. package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherBridgelessDevSupportManager.kt +3 -2
  59. package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherDevSupportManagerSwapper.kt +17 -26
  60. package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherReactNativeHostHandler.kt +0 -5
  61. package/android/src/debug/java/expo/modules/devlauncher/services/ApolloClientService.kt +98 -0
  62. package/android/src/debug/java/expo/modules/devlauncher/services/AppService.kt +82 -0
  63. package/android/src/debug/java/expo/modules/devlauncher/services/DependencyInjection.kt +87 -0
  64. package/android/src/debug/java/expo/modules/devlauncher/services/ErrorRegistryService.kt +13 -0
  65. package/android/src/debug/java/expo/modules/devlauncher/services/HttpClientService.kt +84 -0
  66. package/android/src/debug/java/expo/modules/devlauncher/services/ImageLoaderService.kt +81 -0
  67. package/android/src/debug/java/expo/modules/devlauncher/services/PackagerService.kt +158 -0
  68. package/android/src/debug/java/expo/modules/devlauncher/services/SessionService.kt +112 -0
  69. package/android/src/debug/res/drawable-mdpi/qr_code.png +0 -0
  70. package/android/src/debug/res/drawable-night-mdpi/qr_code.png +0 -0
  71. package/android/src/debug/res/drawable-night-xhdpi/qr_code.png +0 -0
  72. package/android/src/debug/res/drawable-night-xxhdpi/qr_code.png +0 -0
  73. package/android/src/debug/res/drawable-xhdpi/qr_code.png +0 -0
  74. package/android/src/debug/res/drawable-xxhdpi/qr_code.png +0 -0
  75. package/android/src/main/AndroidManifest.xml +6 -1
  76. package/android/src/main/graphql/GetBranches.graphql +44 -0
  77. package/android/src/main/graphql/GetUpdates.graphql +21 -0
  78. package/android/src/main/graphql/Me.graphql +18 -0
  79. package/android/src/main/graphql/schema.graphqls +9850 -0
  80. package/android/src/main/java/com/facebook/react/devsupport/DevLauncherDevServerHelper.kt +7 -7
  81. package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgeDevSupportManager.kt +109 -0
  82. package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgelessDevSupportManager.kt +93 -0
  83. package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherControllerInterface.kt +0 -1
  84. package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistry.kt +10 -9
  85. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorRegistry.kt +7 -6
  86. package/android/src/main/java/expo/modules/devlauncher/react/activitydelegates/DevLauncherReactActivityNOPDelegate.kt +2 -2
  87. package/android/src/main/java/expo/modules/devlauncher/splashscreen/DevLauncherSplashScreen.kt +0 -2
  88. package/android/src/main/res/drawable-mdpi/dev_menu_fab_icon.png +0 -0
  89. package/android/src/main/res/drawable-xhdpi/dev_menu_fab_icon.png +0 -0
  90. package/android/src/main/res/drawable-xxhdpi/dev_menu_fab_icon.png +0 -0
  91. package/android/src/main/res/layout/error_fragment.xml +2 -0
  92. package/android/src/main/res/values/styles.xml +6 -9
  93. package/android/src/release/java/expo/modules/devlauncher/DevLauncherController.kt +0 -3
  94. package/expo-dev-launcher-gradle-plugin/build.gradle.kts +1 -1
  95. package/expo-dev-launcher.podspec +4 -4
  96. package/expo-module.config.json +0 -2
  97. package/ios/Assets.xcassets/Contents.json +6 -0
  98. package/ios/Assets.xcassets/TabBarTint.colorset/Contents.json +38 -0
  99. package/ios/Assets.xcassets/branch-icon.imageset/Contents.json +56 -0
  100. package/ios/Assets.xcassets/expo-go-logo.imageset/Contents.json +21 -0
  101. package/ios/Assets.xcassets/expo-go-logo.imageset/expo-go logo.png +0 -0
  102. package/ios/Assets.xcassets/extensions-icon.imageset/Contents.json +26 -0
  103. package/ios/Assets.xcassets/extensions.imageset/Contents.json +23 -0
  104. package/ios/Assets.xcassets/log-in.imageset/Contents.json +21 -0
  105. package/ios/Assets.xcassets/log-in.imageset/log-in.png +0 -0
  106. package/ios/Assets.xcassets/refresh-icon.imageset/Contents.json +23 -0
  107. package/ios/Assets.xcassets/shake-device.imageset/Contents.json +56 -0
  108. package/ios/Assets.xcassets/show-menu-at-launch.imageset/Contents.json +56 -0
  109. package/ios/Assets.xcassets/terminal-icon.imageset/Contents.json +23 -0
  110. package/ios/Assets.xcassets/three-finger-long-press.imageset/Contents.json +56 -0
  111. package/ios/Assets.xcassets/update-icon.imageset/Contents.json +56 -0
  112. package/ios/Assets.xcassets/user-icon.imageset/Contents.json +56 -0
  113. package/ios/EXDevLauncherController.h +4 -0
  114. package/ios/EXDevLauncherController.m +24 -31
  115. package/ios/EXDevLauncherInstallationIDHelper.swift +6 -0
  116. package/ios/EXDevLauncherPendingDeepLinkRegistry.swift +2 -0
  117. package/ios/EXDevLauncherRecentlyOpenedAppsRegistry.swift +1 -0
  118. package/ios/EXDevLauncherURLHelper.swift +32 -30
  119. package/ios/EXDevLauncherUtils.swift +2 -11
  120. package/ios/Errors/EXDevLauncherErrorManager.swift +44 -25
  121. package/ios/Manifest/EXDevLauncherManifestHelper.swift +14 -10
  122. package/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift +1 -1
  123. package/ios/ReactNative/EXDevLauncherBundleURLProviderInterceptor.swift +2 -0
  124. package/ios/SwiftUI/AccountSheet.swift +240 -0
  125. package/ios/SwiftUI/CrashReportView.swift +175 -0
  126. package/ios/SwiftUI/Data.swift +34 -0
  127. package/ios/SwiftUI/DevLauncherErrors.swift +38 -0
  128. package/ios/SwiftUI/DevLauncherTabBarManager.swift +32 -0
  129. package/ios/SwiftUI/DevLauncherViewController.swift +55 -0
  130. package/ios/SwiftUI/DevLauncherViewModel.swift +400 -0
  131. package/ios/SwiftUI/DevLauncherViews.swift +105 -0
  132. package/ios/SwiftUI/DevServerInfoModal.swift +88 -0
  133. package/ios/SwiftUI/DevServersView.swift +182 -0
  134. package/ios/SwiftUI/ErrorView.swift +94 -0
  135. package/ios/SwiftUI/GraphQL/APIClient.swift +83 -0
  136. package/ios/SwiftUI/GraphQL/Models.swift +116 -0
  137. package/ios/SwiftUI/GraphQL/Queries.swift +150 -0
  138. package/ios/SwiftUI/HomeTabView.swift +74 -0
  139. package/ios/SwiftUI/Navigation/Navigation.swift +131 -0
  140. package/ios/SwiftUI/SettingsTabView.swift +230 -0
  141. package/ios/SwiftUI/StackFrameView.swift +29 -0
  142. package/ios/SwiftUI/UpdatesTab/NotSignedInView.swift +45 -0
  143. package/ios/SwiftUI/UpdatesTab/NotUsingUpdatesView.swift +38 -0
  144. package/ios/SwiftUI/UpdatesTab/UpdateRow.swift +78 -0
  145. package/ios/SwiftUI/UpdatesTab/UpdateUtils.swift +5 -0
  146. package/ios/SwiftUI/UpdatesTab/UpdatesListView.swift +200 -0
  147. package/ios/SwiftUI/UpdatesTab/UpdatesTabView.swift +26 -0
  148. package/ios/SwiftUI/Utils/Avatar.swift +66 -0
  149. package/ios/SwiftUI/Utils/Utils.swift +71 -0
  150. package/ios/Tests/EXDevLauncherControllerTest.swift +0 -10
  151. package/ios/Tests/EXDevLauncherRecentlyOpenedAppsRegistryTests.swift +4 -4
  152. package/ios/Tests/EXDevLauncherURLHelperTests.swift +4 -4
  153. package/ios/Unsafe/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.m +19 -5
  154. package/package.json +5 -47
  155. package/android/src/debug/assets/expo_dev_launcher_android.bundle +0 -1410
  156. package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherReactHost.kt +0 -104
  157. package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherReactNativeHost.kt +0 -65
  158. package/android/src/debug/java/expo/modules/devlauncher/modules/DevLauncherAuth.kt +0 -72
  159. package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
  160. package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_backiconmask.png +0 -0
  161. package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
  162. package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
  163. package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
  164. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
  165. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
  166. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
  167. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
  168. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
  169. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
  170. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
  171. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
  172. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
  173. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  174. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
  175. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
  176. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
  177. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
  178. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
  179. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  180. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
  181. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  182. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  183. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_runicon.png +0 -0
  184. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  185. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
  186. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
  187. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
  188. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
  189. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  190. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
  191. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
  192. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
  193. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
  194. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
  195. package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
  196. package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
  197. package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
  198. package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
  199. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
  200. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
  201. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
  202. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
  203. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
  204. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
  205. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
  206. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
  207. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
  208. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  209. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
  210. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
  211. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
  212. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
  213. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
  214. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  215. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
  216. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  217. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  218. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_runicon.png +0 -0
  219. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  220. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
  221. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
  222. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
  223. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
  224. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  225. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
  226. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
  227. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
  228. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
  229. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
  230. package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
  231. package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
  232. package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
  233. package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
  234. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
  235. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
  236. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
  237. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
  238. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
  239. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
  240. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
  241. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
  242. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
  243. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  244. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
  245. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
  246. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
  247. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
  248. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
  249. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  250. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
  251. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  252. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  253. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_runicon.png +0 -0
  254. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  255. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
  256. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
  257. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
  258. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
  259. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  260. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
  261. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
  262. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
  263. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
  264. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
  265. package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
  266. package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
  267. package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
  268. package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
  269. package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgeDevSupportManager.java +0 -140
  270. package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgelessDevSupportManager.java +0 -134
  271. package/android/src/main/java/expo/modules/devlauncher/modules/DevLauncherInternalModule.kt +0 -237
  272. package/android/src/main/res/drawable-mdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  273. package/android/src/main/res/drawable-xhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  274. package/android/src/main/res/drawable-xxhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  275. package/android/src/testDebug/java/expo/modules/devlauncher/DevLauncherControllerTest.kt +0 -50
  276. package/android/src/testDebug/java/expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistryTest.kt +0 -44
  277. package/android/src/testDebug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoaderFactoryTest.kt +0 -181
  278. package/android/src/testDebug/java/expo/modules/devlauncher/modules/DevLauncherModuleTest.kt +0 -40
  279. package/app.plugin.js +0 -1
  280. package/build/DevLauncher.d.ts +0 -22
  281. package/build/DevLauncher.d.ts.map +0 -1
  282. package/build/DevLauncher.js +0 -16
  283. package/build/DevLauncher.js.map +0 -1
  284. package/build/DevLauncherErrorManager.d.ts +0 -9
  285. package/build/DevLauncherErrorManager.d.ts.map +0 -1
  286. package/build/DevLauncherErrorManager.js +0 -66
  287. package/build/DevLauncherErrorManager.js.map +0 -1
  288. package/build/DevLauncherErrorManager.web.d.ts +0 -2
  289. package/build/DevLauncherErrorManager.web.d.ts.map +0 -1
  290. package/build/DevLauncherErrorManager.web.js +0 -5
  291. package/build/DevLauncherErrorManager.web.js.map +0 -1
  292. package/build/WebUnsupportedError.d.ts +0 -4
  293. package/build/WebUnsupportedError.d.ts.map +0 -1
  294. package/build/WebUnsupportedError.js +0 -6
  295. package/build/WebUnsupportedError.js.map +0 -1
  296. package/build/setUpErrorHandler.fx.d.ts +0 -2
  297. package/build/setUpErrorHandler.fx.d.ts.map +0 -1
  298. package/build/setUpErrorHandler.fx.js +0 -4
  299. package/build/setUpErrorHandler.fx.js.map +0 -1
  300. package/build/setUpErrorHandler.fx.web.d.ts +0 -1
  301. package/build/setUpErrorHandler.fx.web.d.ts.map +0 -1
  302. package/build/setUpErrorHandler.fx.web.js +0 -1
  303. package/build/setUpErrorHandler.fx.web.js.map +0 -1
  304. package/bundle/App.tsx +0 -105
  305. package/bundle/StatusBarMock.js +0 -3
  306. package/bundle/apiClient.ts +0 -69
  307. package/bundle/components/ActivityIndicator.tsx +0 -33
  308. package/bundle/components/AppHeader.tsx +0 -99
  309. package/bundle/components/Avatar.tsx +0 -96
  310. package/bundle/components/BaseModal.tsx +0 -42
  311. package/bundle/components/BasicButton.tsx +0 -65
  312. package/bundle/components/DeepLinkModal.tsx +0 -169
  313. package/bundle/components/DevServerExplainerModal.tsx +0 -27
  314. package/bundle/components/EASUpdatesRows.tsx +0 -261
  315. package/bundle/components/EmptyBranchesMessage.tsx +0 -106
  316. package/bundle/components/FlatList.tsx +0 -56
  317. package/bundle/components/ListButton.tsx +0 -37
  318. package/bundle/components/LoadAppErrorModal.tsx +0 -12
  319. package/bundle/components/LoadInitialData.tsx +0 -27
  320. package/bundle/components/LogoutConfirmationModal.tsx +0 -46
  321. package/bundle/components/PulseIndicator.tsx +0 -56
  322. package/bundle/components/SafeAreaTop.tsx +0 -8
  323. package/bundle/components/ScreenContainer.tsx +0 -8
  324. package/bundle/components/Splash.tsx +0 -12
  325. package/bundle/components/Toasts.tsx +0 -60
  326. package/bundle/components/UrlDropdown.tsx +0 -156
  327. package/bundle/functions/createAsyncStack.ts +0 -240
  328. package/bundle/functions/debounce.ts +0 -7
  329. package/bundle/functions/formatUpdateUrl.ts +0 -6
  330. package/bundle/functions/getDevSessionsAsync.ts +0 -96
  331. package/bundle/functions/getInitialData.ts +0 -67
  332. package/bundle/functions/getRecentRuntime.ts +0 -7
  333. package/bundle/functions/getServerUrlFromDevSession.ts +0 -12
  334. package/bundle/functions/getUserProfileAsync.ts +0 -49
  335. package/bundle/functions/restoreUserAsync.ts +0 -16
  336. package/bundle/functions/sleepAsync.ts +0 -3
  337. package/bundle/functions/startAuthSessionAsync.ts +0 -23
  338. package/bundle/functions/validateUrl.ts +0 -11
  339. package/bundle/hooks/useDebounce.tsx +0 -44
  340. package/bundle/hooks/useDevMenuPreferences.tsx +0 -100
  341. package/bundle/hooks/useIsMounted.ts +0 -16
  342. package/bundle/hooks/useOnUpdatePress.tsx +0 -67
  343. package/bundle/index.ts +0 -13
  344. package/bundle/native-modules/DevLauncherAuth.ts +0 -125
  345. package/bundle/native-modules/DevLauncherInternal.ts +0 -101
  346. package/bundle/native-modules/DevMenuPreferences.ts +0 -18
  347. package/bundle/providers/AppProviders.tsx +0 -88
  348. package/bundle/providers/BuildInfoProvider.tsx +0 -30
  349. package/bundle/providers/CrashReportProvider.tsx +0 -18
  350. package/bundle/providers/DevMenuPreferencesProvider.tsx +0 -100
  351. package/bundle/providers/DevSessionsProvider.tsx +0 -72
  352. package/bundle/providers/ModalStackProvider.tsx +0 -100
  353. package/bundle/providers/PendingDeepLinkProvider.tsx +0 -52
  354. package/bundle/providers/QueryProvider.tsx +0 -40
  355. package/bundle/providers/RecentlyOpenedAppsProvider.tsx +0 -121
  356. package/bundle/providers/ToastStackProvider.tsx +0 -156
  357. package/bundle/providers/UpdatesConfigProvider.tsx +0 -14
  358. package/bundle/providers/UserContextProvider.tsx +0 -105
  359. package/bundle/queries/useBranchesForApp.tsx +0 -212
  360. package/bundle/queries/useChannelsForApp.tsx +0 -65
  361. package/bundle/queries/useUpdatesForBranch.tsx +0 -124
  362. package/bundle/screens/BranchesScreen.tsx +0 -199
  363. package/bundle/screens/CrashReportScreen.tsx +0 -107
  364. package/bundle/screens/ExtensionsScreen.tsx +0 -335
  365. package/bundle/screens/ExtensionsStack.tsx +0 -41
  366. package/bundle/screens/HomeScreen.tsx +0 -443
  367. package/bundle/screens/KitchenSinkScreen.tsx +0 -131
  368. package/bundle/screens/SettingsScreen.tsx +0 -332
  369. package/bundle/screens/UpdatesScreen.tsx +0 -279
  370. package/bundle/screens/UserProfileScreen.tsx +0 -252
  371. package/bundle/test-utils.tsx +0 -34
  372. package/bundle/tsconfig.json +0 -14
  373. package/bundle/types.ts +0 -13
  374. package/index.js +0 -1
  375. package/ios/DevLauncherAuth.swift +0 -65
  376. package/ios/DevLauncherExceptions.swift +0 -31
  377. package/ios/DevLauncherInternal.swift +0 -135
  378. package/ios/Errors/EXDevLauncherErrorViewController.swift +0 -67
  379. package/ios/Errors/EXDevLauncherStackTrace.swift +0 -9
  380. package/ios/Views/EXDevLauncherErrorView.storyboard +0 -181
  381. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.png +0 -0
  382. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon.png +0 -0
  383. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon@2x.png +0 -0
  384. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon@3x.png +0 -0
  385. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.png +0 -0
  386. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon@2x.png +0 -0
  387. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon@3x.png +0 -0
  388. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.png +0 -0
  389. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon@2x.png +0 -0
  390. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon@3x.png +0 -0
  391. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon.png +0 -0
  392. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon@2x.png +0 -0
  393. package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon@3x.png +0 -0
  394. package/ios/assets/_expo-dev-client-components/assets/building-icon.png +0 -0
  395. package/ios/assets/_expo-dev-client-components/assets/building-icon@2x.png +0 -0
  396. package/ios/assets/_expo-dev-client-components/assets/building-icon@3x.png +0 -0
  397. package/ios/assets/_expo-dev-client-components/assets/check-icon-light.png +0 -0
  398. package/ios/assets/_expo-dev-client-components/assets/check-icon-light@2x.png +0 -0
  399. package/ios/assets/_expo-dev-client-components/assets/check-icon-light@3x.png +0 -0
  400. package/ios/assets/_expo-dev-client-components/assets/check-icon.png +0 -0
  401. package/ios/assets/_expo-dev-client-components/assets/check-icon@2x.png +0 -0
  402. package/ios/assets/_expo-dev-client-components/assets/check-icon@3x.png +0 -0
  403. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon.png +0 -0
  404. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@2x.png +0 -0
  405. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@3x.png +0 -0
  406. package/ios/assets/_expo-dev-client-components/assets/clipboard-icon.png +0 -0
  407. package/ios/assets/_expo-dev-client-components/assets/clipboard-icon@2x.png +0 -0
  408. package/ios/assets/_expo-dev-client-components/assets/clipboard-icon@3x.png +0 -0
  409. package/ios/assets/_expo-dev-client-components/assets/debug-icon.png +0 -0
  410. package/ios/assets/_expo-dev-client-components/assets/debug-icon@2x.png +0 -0
  411. package/ios/assets/_expo-dev-client-components/assets/debug-icon@3x.png +0 -0
  412. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light.png +0 -0
  413. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light@2x.png +0 -0
  414. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light@3x.png +0 -0
  415. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon.png +0 -0
  416. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon@2x.png +0 -0
  417. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon@3x.png +0 -0
  418. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light.png +0 -0
  419. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light@2x.png +0 -0
  420. package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light@3x.png +0 -0
  421. package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light.png +0 -0
  422. package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light@2x.png +0 -0
  423. package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light@3x.png +0 -0
  424. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light.png +0 -0
  425. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light@2x.png +0 -0
  426. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light@3x.png +0 -0
  427. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon.png +0 -0
  428. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@2x.png +0 -0
  429. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@3x.png +0 -0
  430. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light.png +0 -0
  431. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light@2x.png +0 -0
  432. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light@3x.png +0 -0
  433. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon.png +0 -0
  434. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@2x.png +0 -0
  435. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@3x.png +0 -0
  436. package/ios/assets/_expo-dev-client-components/assets/info-icon-light.png +0 -0
  437. package/ios/assets/_expo-dev-client-components/assets/info-icon-light@2x.png +0 -0
  438. package/ios/assets/_expo-dev-client-components/assets/info-icon-light@3x.png +0 -0
  439. package/ios/assets/_expo-dev-client-components/assets/info-icon.png +0 -0
  440. package/ios/assets/_expo-dev-client-components/assets/info-icon@2x.png +0 -0
  441. package/ios/assets/_expo-dev-client-components/assets/info-icon@3x.png +0 -0
  442. package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon.png +0 -0
  443. package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon@2x.png +0 -0
  444. package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon@3x.png +0 -0
  445. package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon.png +0 -0
  446. package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon@2x.png +0 -0
  447. package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon@3x.png +0 -0
  448. package/ios/assets/_expo-dev-client-components/assets/logo-icon.png +0 -0
  449. package/ios/assets/_expo-dev-client-components/assets/logo-icon@2x.png +0 -0
  450. package/ios/assets/_expo-dev-client-components/assets/logo-icon@3x.png +0 -0
  451. package/ios/assets/_expo-dev-client-components/assets/performance-icon.png +0 -0
  452. package/ios/assets/_expo-dev-client-components/assets/performance-icon@2x.png +0 -0
  453. package/ios/assets/_expo-dev-client-components/assets/performance-icon@3x.png +0 -0
  454. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon.png +0 -0
  455. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@2x.png +0 -0
  456. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@3x.png +0 -0
  457. package/ios/assets/_expo-dev-client-components/assets/run-icon.png +0 -0
  458. package/ios/assets/_expo-dev-client-components/assets/run-icon@2x.png +0 -0
  459. package/ios/assets/_expo-dev-client-components/assets/run-icon@3x.png +0 -0
  460. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light.png +0 -0
  461. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light@2x.png +0 -0
  462. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light@3x.png +0 -0
  463. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon.png +0 -0
  464. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@2x.png +0 -0
  465. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@3x.png +0 -0
  466. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light.png +0 -0
  467. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light@2x.png +0 -0
  468. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light@3x.png +0 -0
  469. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon.png +0 -0
  470. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@2x.png +0 -0
  471. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@3x.png +0 -0
  472. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon.png +0 -0
  473. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@2x.png +0 -0
  474. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@3x.png +0 -0
  475. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light.png +0 -0
  476. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light@2x.png +0 -0
  477. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light@3x.png +0 -0
  478. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon.png +0 -0
  479. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon@2x.png +0 -0
  480. package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon@3x.png +0 -0
  481. package/ios/assets/_expo-dev-client-components/assets/x-icon-light.png +0 -0
  482. package/ios/assets/_expo-dev-client-components/assets/x-icon-light@2x.png +0 -0
  483. package/ios/assets/_expo-dev-client-components/assets/x-icon-light@3x.png +0 -0
  484. package/ios/assets/_expo-dev-client-components/assets/x-icon.png +0 -0
  485. package/ios/assets/_expo-dev-client-components/assets/x-icon@2x.png +0 -0
  486. package/ios/assets/_expo-dev-client-components/assets/x-icon@3x.png +0 -0
  487. package/ios/main.jsbundle +0 -1407
  488. package/metro.config.js +0 -38
  489. package/plugin/build/pluginConfig.d.ts +0 -43
  490. package/plugin/build/pluginConfig.js +0 -77
  491. package/plugin/build/withDevLauncher.d.ts +0 -3
  492. package/plugin/build/withDevLauncher.js +0 -30
  493. package/plugin/jest.config.js +0 -1
  494. package/plugin/src/pluginConfig.ts +0 -121
  495. package/plugin/src/withDevLauncher.ts +0 -50
  496. package/plugin/tsconfig.json +0 -10
  497. package/react-native.config.js +0 -9
  498. package/setupTests.ts +0 -67
  499. package/src/DevLauncher.ts +0 -33
  500. package/src/DevLauncherErrorManager.ts +0 -78
  501. package/src/DevLauncherErrorManager.web.ts +0 -5
  502. package/src/WebUnsupportedError.ts +0 -5
  503. package/src/setUpErrorHandler.fx.ts +0 -6
  504. package/src/setUpErrorHandler.fx.web.ts +0 -0
  505. package/tsconfig.json +0 -9
  506. package/write_embedded_bundle.sh +0 -49
  507. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
  508. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
  509. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
  510. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
  511. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
  512. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
  513. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
  514. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
  515. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
  516. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
  517. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
  518. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
  519. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
  520. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
  521. /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
  522. /package/android/src/debug/res/{drawable-mdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-mdpi/shake_device_icon.png} +0 -0
  523. /package/android/src/debug/res/{drawable-xhdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-xhdpi/shake_device_icon.png} +0 -0
  524. /package/android/src/debug/res/{drawable-xxhdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-xxhdpi/shake_device_icon.png} +0 -0
  525. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
  526. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
  527. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
  528. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
  529. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
  530. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
  531. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
  532. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
  533. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
  534. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
  535. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
  536. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
  537. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
  538. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
  539. /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
  540. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
  541. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
  542. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
  543. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
  544. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
  545. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
  546. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
  547. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
  548. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
  549. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
  550. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
  551. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
  552. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
  553. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
  554. /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
  555. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light.png +0 -0
  556. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light@2x.png +0 -0
  557. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light@3x.png +0 -0
  558. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon.png +0 -0
  559. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon@2x.png +0 -0
  560. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon@3x.png +0 -0
  561. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon.png +0 -0
  562. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon@2x.png +0 -0
  563. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon@3x.png +0 -0
  564. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon.png +0 -0
  565. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon@2x.png +0 -0
  566. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon@3x.png +0 -0
  567. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon.png +0 -0
  568. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon@2x.png +0 -0
  569. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon@3x.png +0 -0
  570. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light.png +0 -0
  571. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light@2x.png +0 -0
  572. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light@3x.png +0 -0
  573. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon.png +0 -0
  574. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon@2x.png +0 -0
  575. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon@3x.png +0 -0
  576. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light.png +0 -0
  577. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light@2x.png +0 -0
  578. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light@3x.png +0 -0
  579. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon.png +0 -0
  580. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon@2x.png +0 -0
  581. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon@3x.png +0 -0
  582. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon.png +0 -0
  583. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon@2x.png +0 -0
  584. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon@3x.png +0 -0
  585. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light.png +0 -0
  586. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light@2x.png +0 -0
  587. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light@3x.png +0 -0
  588. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon.png +0 -0
  589. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon@2x.png +0 -0
  590. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon@3x.png +0 -0
  591. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light.png +0 -0
  592. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light@2x.png +0 -0
  593. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light@3x.png +0 -0
  594. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon.png +0 -0
  595. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon@2x.png +0 -0
  596. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon@3x.png +0 -0
  597. /package/ios/{assets/_expo-dev-client-components/assets/user-icon.png → Assets.xcassets/user-icon.imageset/user-icon 1.png} +0 -0
  598. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light.png +0 -0
  599. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light@2x.png +0 -0
  600. /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light@3x.png +0 -0
  601. /package/ios/{assets/_expo-dev-client-components/assets/user-icon@2x.png → Assets.xcassets/user-icon.imageset/user-icon@2x 1.png} +0 -0
  602. /package/ios/{assets/_expo-dev-client-components/assets/user-icon@3x.png → Assets.xcassets/user-icon.imageset/user-icon@3x 1.png} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,116 @@
4
4
 
5
5
  ### 🛠 Breaking changes
6
6
 
7
+ ### 🎉 New features
8
+
9
+ ### 🐛 Bug fixes
10
+
11
+ ### 💡 Others
12
+
13
+ ## 6.0.0 — 2025-08-13
14
+
15
+ ### 🎉 New features
16
+
17
+ - [iOS] Reimplement UI in SwiftUI. ([#37413](https://github.com/expo/expo/pull/37413) by [@alanjhughes](https://github.com/alanjhughes))
18
+ - [Android] Add floating action button option in the settings menu. ([#38247](https://github.com/expo/expo/pull/38247) by [@behenate](https://github.com/behenate))
19
+ - [iOS] Partial support for Apple TV. ([#38388](https://github.com/expo/expo/pull/38388) by [@douglowder](https://github.com/douglowder))
20
+
21
+ ### 🐛 Bug fixes
22
+
23
+ - [iOS] Fix missing CDP headers when using static frameworks. ([#37448](https://github.com/expo/expo/pull/37448) by [@alanjhughes](https://github.com/alanjhughes))
24
+ - [Android] Use same strings in UI as iOS. ([#37786](https://github.com/expo/expo/pull/37786) by [@douglowder](https://github.com/douglowder))
25
+ - [iOS] Fix an issue where the packager commands stop working after a reload. ([#38579](https://github.com/expo/expo/pull/38579) by [@alanjhughes](https://github.com/alanjhughes))
26
+
27
+ ### 💡 Others
28
+
29
+ - [Android] RN 0.81.0: patched some reflection issues after kotlin upgrade ([#38451](https://github.com/expo/expo/pull/38451) by [@chrfalch](https://github.com/chrfalch))
30
+ - Fixed release build error on Android. ([#37579](https://github.com/expo/expo/pull/37579) by [@kudo](https://github.com/kudo))
31
+ - Informational message for tvOS on signin page. ([#38518](https://github.com/expo/expo/pull/38518) by [@douglowder](https://github.com/douglowder))
32
+
33
+ ### ⚠️ Notices
34
+
35
+ - Added support for React Native 0.80.x. ([#37400](https://github.com/expo/expo/pull/37400) by [@gabrieldonadel](https://github.com/gabrieldonadel))
36
+
37
+ ## 5.1.16 - 2025-07-03
38
+
39
+ _This version does not introduce any user-facing changes._
40
+
41
+ ## 5.1.15 - 2025-07-02
42
+
43
+ _This version does not introduce any user-facing changes._
44
+
45
+ ## 5.1.14 - 2025-06-26
46
+
47
+ ### 🐛 Bug fixes
48
+
49
+ - [Android] Fix missing launch args from pending intent extras. ([#37172](https://github.com/expo/expo/pull/37172) by [@coolsoftwaretyler](https://github.com/coolsoftwaretyler))
50
+ - [Android] Fix missing intent extras when handling external intents. ([#37307](https://github.com/expo/expo/pull/37307) by [@coolsoftwaretyler](https://github.com/coolsoftwaretyler))
51
+
52
+ ## 5.1.13 - 2025-06-18
53
+
54
+ _This version does not introduce any user-facing changes._
55
+
56
+ ## 5.1.12 - 2025-06-04
57
+
58
+ ### 🐛 Bug fixes
59
+
60
+ - [Android] Remove `testDebug` variant from npm package. ([#36845](https://github.com/expo/expo/pull/36845) by [@lukmccall](https://github.com/lukmccall))
61
+
62
+ ## 5.1.11 — 2025-05-01
63
+
64
+ _This version does not introduce any user-facing changes._
65
+
66
+ ## 5.1.10 — 2025-04-30
67
+
68
+ _This version does not introduce any user-facing changes._
69
+
70
+ ## 5.1.9 — 2025-04-30
71
+
72
+ ### 🐛 Bug fixes
73
+
74
+ - Fixed Property "require" doesn't exist error. ([#36484](https://github.com/expo/expo/pull/36484) by [@kudo](https://github.com/kudo))
75
+
76
+ ## 5.1.8 — 2025-04-28
77
+
78
+ _This version does not introduce any user-facing changes._
79
+
80
+ ## 5.1.7 — 2025-04-28
81
+
82
+ _This version does not introduce any user-facing changes._
83
+
84
+ ## 5.1.6 — 2025-04-25
85
+
86
+ ### 💡 Others
87
+
88
+ - [iOS] Remove usage of deprecated `SFAuthenticationSession` for user login. ([#36395](https://github.com/expo/expo/pull/36395) by [@alanjhughes](https://github.com/alanjhughes))
89
+ - [Android] Enable edge-to-edge. ([#36363](https://github.com/expo/expo/pull/36363) by [@behenate](https://github.com/behenate))
90
+
91
+ ## 5.1.5 — 2025-04-23
92
+
93
+ ### 🐛 Bug fixes
94
+
95
+ - Fix duplicated modals ([#36326](https://github.com/expo/expo/pull/36326) by [@jakex7](https://github.com/jakex7))
96
+
97
+ ## 5.1.4 — 2025-04-21
98
+
99
+ _This version does not introduce any user-facing changes._
100
+
101
+ ## 5.1.3 — 2025-04-14
102
+
103
+ _This version does not introduce any user-facing changes._
104
+
105
+ ## 5.1.2 — 2025-04-09
106
+
107
+ _This version does not introduce any user-facing changes._
108
+
109
+ ## 5.1.1 — 2025-04-08
110
+
111
+ _This version does not introduce any user-facing changes._
112
+
113
+ ## 5.1.0 — 2025-04-04
114
+
115
+ ### 🛠 Breaking changes
116
+
7
117
  - upgrade RN to 0.78 ([#35050](https://github.com/expo/expo/pull/35050) by [@vonovak](https://github.com/vonovak))
8
118
 
9
119
  ### 🎉 New features
@@ -11,8 +121,6 @@
11
121
  - support react-native 0.77 ([#33379](https://github.com/expo/expo/pull/33379) by [@vonovak](https://github.com/vonovak))
12
122
  - Bump version of React Navigation ([#35595](https://github.com/expo/expo/pull/35595) by [@marklawlor](https://github.com/marklawlor))
13
123
 
14
- ### 🐛 Bug fixes
15
-
16
124
  ### 💡 Others
17
125
 
18
126
  - use custom iOS dependencyProvider ([#35321](https://github.com/expo/expo/pull/35321) by [@vonovak](https://github.com/vonovak))
@@ -1,20 +1,32 @@
1
- plugins {
2
- id 'com.android.library'
3
- id 'expo-module-gradle-plugin'
1
+ buildscript {
2
+ repositories {
3
+ mavenCentral()
4
+ }
5
+ dependencies {
6
+ classpath("org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:${kotlinVersion}")
7
+ classpath("org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:${kotlinVersion}")
8
+ classpath("com.apollographql.apollo:apollo-gradle-plugin:4.3.1")
9
+ }
4
10
  }
5
11
 
12
+ apply plugin: 'com.android.library'
13
+ apply plugin: 'expo-module-gradle-plugin'
14
+ apply plugin: 'org.jetbrains.kotlin.plugin.compose'
15
+ apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
16
+ apply plugin: 'com.apollographql.apollo'
17
+
6
18
  expoModule {
7
19
  canBePublished false
8
20
  }
9
21
 
10
22
  group = "host.exp.exponent"
11
- version = "5.0.17"
23
+ version = "6.0.0"
12
24
 
13
25
  android {
14
26
  namespace "expo.modules.devlauncher"
15
27
  defaultConfig {
16
28
  versionCode 9
17
- versionName "5.0.17"
29
+ versionName "6.0.0"
18
30
  }
19
31
 
20
32
  buildTypes {
@@ -29,6 +41,15 @@ android {
29
41
  }
30
42
  }
31
43
 
44
+ apollo {
45
+ service("service") {
46
+ packageName.set("expo.modules.devlauncher")
47
+ introspection {
48
+ endpointUrl.set("https://api.expo.dev/graphql")
49
+ schemaFile.set(file("src/main/graphql/schema.graphqls"))
50
+ }
51
+ }
52
+ }
32
53
  repositories {
33
54
  // ref: https://www.baeldung.com/maven-local-repository
34
55
  mavenLocal()
@@ -70,6 +91,21 @@ dependencies {
70
91
  api project.dependencies.platform("io.insert-koin:koin-bom:3.5.6")
71
92
  api "io.insert-koin:koin-core"
72
93
 
94
+ def composeVersion = "1.8.2"
95
+
96
+ implementation "androidx.compose.foundation:foundation-android:$composeVersion"
97
+ implementation "androidx.compose.ui:ui:$composeVersion"
98
+ implementation "androidx.compose.ui:ui-tooling:$composeVersion"
99
+ implementation "androidx.navigation:navigation-compose:2.9.0"
100
+ implementation "com.google.android.gms:play-services-code-scanner:16.1.0"
101
+ implementation "com.google.mlkit:barcode-scanning:17.3.0"
102
+
103
+ implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1")
104
+
105
+ implementation("com.apollographql.apollo:apollo-runtime:4.3.1")
106
+
107
+ implementation("com.composables:core:1.37.0")
108
+
73
109
  testImplementation 'androidx.test:core:1.4.0'
74
110
  testImplementation 'androidx.test:core-ktx:1.4.0'
75
111
  testImplementation "com.google.truth:truth:1.1.2"
@@ -1,10 +1,17 @@
1
1
  <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+
2
3
  <application>
3
4
  <activity
4
5
  android:name="expo.modules.devlauncher.launcher.DevLauncherActivity"
5
6
  android:exported="true"
6
7
  android:launchMode="singleTask"
7
- android:theme="@style/Theme.DevLauncher.LauncherActivity">
8
+ android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
9
+
10
+ <activity
11
+ android:name="expo.modules.devlauncher.compose.AuthActivity"
12
+ android:exported="true"
13
+ android:launchMode="singleTask"
14
+ android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
8
15
  <intent-filter>
9
16
  <action android:name="android.intent.action.VIEW" />
10
17
 
@@ -4,7 +4,10 @@ import android.app.Application
4
4
  import android.content.Context
5
5
  import android.content.Intent
6
6
  import android.net.Uri
7
+ import android.os.Bundle
8
+ import android.util.Log
7
9
  import androidx.annotation.UiThread
10
+ import androidx.core.net.toUri
8
11
  import com.facebook.react.ReactActivity
9
12
  import com.facebook.react.ReactActivityDelegate
10
13
  import com.facebook.react.ReactApplication
@@ -29,8 +32,6 @@ import expo.modules.devlauncher.launcher.DevLauncherIntentRegistryInterface
29
32
  import expo.modules.devlauncher.launcher.DevLauncherLifecycle
30
33
  import expo.modules.devlauncher.launcher.DevLauncherNetworkInterceptor
31
34
  import expo.modules.devlauncher.launcher.DevLauncherReactActivityDelegateSupplier
32
- import expo.modules.devlauncher.launcher.DevLauncherReactHost
33
- import expo.modules.devlauncher.launcher.DevLauncherReactNativeHost
34
35
  import expo.modules.devlauncher.launcher.DevLauncherRecentlyOpenedAppsRegistry
35
36
  import expo.modules.devlauncher.launcher.errors.DevLauncherAppError
36
37
  import expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity
@@ -39,6 +40,7 @@ import expo.modules.devlauncher.launcher.loaders.DevLauncherAppLoaderFactoryInte
39
40
  import expo.modules.devlauncher.launcher.manifest.DevLauncherManifestParser
40
41
  import expo.modules.devlauncher.react.activitydelegates.DevLauncherReactActivityNOPDelegate
41
42
  import expo.modules.devlauncher.react.activitydelegates.DevLauncherReactActivityRedirectDelegate
43
+ import expo.modules.devlauncher.services.DependencyInjection
42
44
  import expo.modules.devlauncher.tests.DevLauncherTestInterceptor
43
45
  import expo.modules.devmenu.DevMenuManager
44
46
  import expo.modules.manifests.core.Manifest
@@ -51,10 +53,6 @@ import org.koin.core.component.get
51
53
  import org.koin.core.component.inject
52
54
  import org.koin.dsl.module
53
55
 
54
- // Use this to load from a development server for the development client launcher UI
55
- // private val DEV_LAUNCHER_HOST = "10.0.0.175:8090";
56
- private val DEV_LAUNCHER_HOST: String? = null
57
-
58
56
  private const val NEW_ACTIVITY_FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK or
59
57
  Intent.FLAG_ACTIVITY_CLEAR_TASK or
60
58
  Intent.FLAG_ACTIVITY_NO_ANIMATION
@@ -73,27 +71,29 @@ class DevLauncherController private constructor() :
73
71
  var devMenuManager: DevMenuManager = DevMenuManager
74
72
  override var updatesInterface: UpdatesInterface?
75
73
  get() = internalUpdatesInterface
76
- set(value) = DevLauncherKoinContext.app.koin.loadModules(
77
- listOf(
78
- module {
79
- single { value }
80
- }
74
+ set(value) = run {
75
+ if (value != null) {
76
+ DependencyInjection.appService.setUpUpdateInterface(value, context)
77
+ }
78
+
79
+ DevLauncherKoinContext.app.koin.loadModules(
80
+ listOf(
81
+ module {
82
+ single { value }
83
+ }
84
+ )
81
85
  )
82
- )
83
- override val coroutineScope = CoroutineScope(Dispatchers.Default)
86
+ }
84
87
 
85
- override val devClientHost by lazy {
86
- ReactHostWrapper(
87
- reactNativeHost = DevLauncherReactNativeHost(context as Application, DEV_LAUNCHER_HOST),
88
- reactHostProvider = { DevLauncherReactHost.create(context as Application, DEV_LAUNCHER_HOST) }
89
- )
90
- }
88
+ override val coroutineScope = CoroutineScope(Dispatchers.Default)
91
89
 
92
90
  private val recentlyOpedAppsRegistry = DevLauncherRecentlyOpenedAppsRegistry(context)
93
91
  override var manifest: Manifest? = null
94
92
  private set
93
+
95
94
  override var manifestURL: Uri? = null
96
95
  private set
96
+
97
97
  override var latestLoadedApp: Uri? = null
98
98
  override var useDeveloperSupport = true
99
99
  var canLaunchDevMenuOnStart = false
@@ -108,6 +108,7 @@ class DevLauncherController private constructor() :
108
108
  private var appIsLoading = false
109
109
 
110
110
  private var networkInterceptor: DevLauncherNetworkInterceptor? = null
111
+ private var pendingIntentExtras: Bundle? = null
111
112
 
112
113
  private fun isEASUpdateURL(url: Uri): Boolean {
113
114
  return url.host.equals("u.expo.dev") || url.host.equals("staging-u.expo.dev")
@@ -142,7 +143,7 @@ class DevLauncherController private constructor() :
142
143
  // default to the EXPO_UPDATE_URL value configured in AndroidManifest.xml when project url is unspecified for an EAS update
143
144
  if (isEASUpdate && projectUrl == null) {
144
145
  val projectUrlString = getMetadataValue(context, "expo.modules.updates.EXPO_UPDATE_URL")
145
- parsedProjectUrl = Uri.parse(projectUrlString)
146
+ parsedProjectUrl = projectUrlString.toUri()
146
147
  }
147
148
 
148
149
  val manifestParser = DevLauncherManifestParser(httpClient, parsedUrl, installationIDHelper.getOrCreateInstallationID(context))
@@ -204,7 +205,8 @@ class DevLauncherController private constructor() :
204
205
  }
205
206
  }
206
207
 
207
- override fun getRecentlyOpenedApps(): List<DevLauncherAppEntry> = recentlyOpedAppsRegistry.getRecentlyOpenedApps()
208
+ override fun getRecentlyOpenedApps(): List<DevLauncherAppEntry> =
209
+ recentlyOpedAppsRegistry.getRecentlyOpenedApps()
208
210
 
209
211
  override fun clearRecentlyOpenedApps() {
210
212
  recentlyOpedAppsRegistry.clearRegistry()
@@ -248,6 +250,7 @@ class DevLauncherController private constructor() :
248
250
 
249
251
  coroutineScope.launch {
250
252
  try {
253
+ pendingIntentRegistry.intent = intent
251
254
  loadApp(uri, activityToBeInvalidated)
252
255
  } catch (e: Throwable) {
253
256
  DevLauncherErrorActivity.showFatalError(context, DevLauncherAppError(e.message, e))
@@ -267,8 +270,8 @@ class DevLauncherController private constructor() :
267
270
  if (shouldTryToLaunchLastOpenedBundle && lastOpenedApp != null) {
268
271
  coroutineScope.launch {
269
272
  try {
270
- loadApp(Uri.parse(lastOpenedApp.url), activityToBeInvalidated)
271
- } catch (e: Throwable) {
273
+ loadApp(lastOpenedApp.url.toUri(), activityToBeInvalidated)
274
+ } catch (_: Throwable) {
272
275
  navigateToLauncher()
273
276
  }
274
277
  }
@@ -281,6 +284,8 @@ class DevLauncherController private constructor() :
281
284
  }
282
285
 
283
286
  private fun handleExternalIntent(intent: Intent): Boolean {
287
+ // Always store the intent extras even if we don't set the pending intent.
288
+ pendingIntentExtras = intent.extras
284
289
  if (mode != Mode.APP && intent.action != Intent.ACTION_MAIN) {
285
290
  pendingIntentRegistry.intent = intent
286
291
  }
@@ -299,6 +304,9 @@ class DevLauncherController private constructor() :
299
304
  }
300
305
 
301
306
  private fun setupDevMenu(launchUrl: String) {
307
+ devMenuManager.setGoToHomeAction {
308
+ navigateToLauncher()
309
+ }
302
310
  devMenuManager.currentManifest = manifest
303
311
  devMenuManager.currentManifestURL = manifestURL.toString()
304
312
  devMenuManager.launchUrl = launchUrl
@@ -362,7 +370,15 @@ class DevLauncherController private constructor() :
362
370
  intent.categories?.let {
363
371
  categories.addAll(it)
364
372
  }
373
+ } ?: run {
374
+ // If no pending intent is available, use the extras from the intent that was used to launch the app.
375
+ pendingIntentExtras?.let {
376
+ putExtras(it)
365
377
  }
378
+ }
379
+
380
+ // Clear the pending intent extras after using them.
381
+ pendingIntentExtras = null
366
382
  }
367
383
 
368
384
  private fun createBasicAppIntent() =
@@ -399,6 +415,17 @@ class DevLauncherController private constructor() :
399
415
 
400
416
  @JvmStatic
401
417
  internal fun initialize(context: Context, reactHost: ReactHostWrapper) {
418
+ try {
419
+ val splashScreenManagerClass = Class.forName("expo.modules.splashscreen.SplashScreenManager")
420
+ val splashScreenManager = splashScreenManagerClass
421
+ .kotlin
422
+ .objectInstance
423
+ splashScreenManagerClass.getMethod("hide")
424
+ .invoke(splashScreenManager)
425
+ } catch (e: Throwable) {
426
+ Log.e("DevLauncherController", "Failed to hide splash screen", e)
427
+ }
428
+
402
429
  val testInterceptor = DevLauncherKoinContext.app.koin.get<DevLauncherTestInterceptor>()
403
430
  if (!testInterceptor.allowReinitialization()) {
404
431
  check(!wasInitialized()) { "DevelopmentClientController was initialized." }
@@ -13,7 +13,6 @@ import expo.modules.core.interfaces.ReactActivityHandler
13
13
  import expo.modules.core.interfaces.ReactActivityLifecycleListener
14
14
  import expo.modules.devlauncher.launcher.DevLauncherReactActivityDelegateSupplier
15
15
  import expo.modules.devlauncher.modules.DevLauncherModule
16
- import expo.modules.devlauncher.modules.DevLauncherAuth
17
16
  import expo.modules.core.interfaces.ReactNativeHostHandler
18
17
  import expo.modules.devlauncher.modules.DevLauncherDevMenuExtension
19
18
  import expo.modules.devlauncher.react.DevLauncherReactNativeHostHandler
@@ -22,8 +21,7 @@ object DevLauncherPackageDelegate {
22
21
  fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> =
23
22
  listOf(
24
23
  DevLauncherModule(reactContext),
25
- DevLauncherDevMenuExtension(reactContext),
26
- DevLauncherAuth(reactContext)
24
+ DevLauncherDevMenuExtension(reactContext)
27
25
  )
28
26
 
29
27
  fun createApplicationLifecycleListeners(context: Context?): List<ApplicationLifecycleListener> =
@@ -0,0 +1,136 @@
1
+ package expo.modules.devlauncher.compose
2
+
3
+ import android.content.Context
4
+ import android.content.Intent
5
+ import android.content.Intent.ACTION_VIEW
6
+ import android.os.Bundle
7
+ import androidx.activity.result.contract.ActivityResultContract
8
+ import androidx.appcompat.app.AppCompatActivity
9
+ import androidx.browser.customtabs.CustomTabsIntent
10
+ import androidx.core.net.toUri
11
+ import java.net.URLEncoder
12
+
13
+ enum class AuthRequestType(val type: String) {
14
+ LOGIN("login"),
15
+ SIGNUP("signup");
16
+
17
+ companion object {
18
+ fun fromString(type: String): AuthRequestType {
19
+ return entries.firstOrNull { it.type == type } ?: LOGIN
20
+ }
21
+ }
22
+ }
23
+
24
+ private const val SESSION_KEY = "session"
25
+ private const val USERNAME_KEY = "username"
26
+ private const val AUTH_REQUEST_TYPE_KEY = "auth_request_type"
27
+
28
+ private const val WEBSITE_ORIGIN = "https://expo.dev"
29
+ private const val REDIRECT_BASE = "expo-dev-launcher://auth"
30
+
31
+ sealed interface AuthResult {
32
+ data class Success(val sessionSecret: String, val username: String) : AuthResult
33
+ object Canceled : AuthResult
34
+ }
35
+
36
+ class AuthActivity : AppCompatActivity() {
37
+ class Contract : ActivityResultContract<AuthRequestType, AuthResult>() {
38
+ override fun createIntent(context: Context, input: AuthRequestType): Intent {
39
+ return Intent(context, AuthActivity::class.java).apply {
40
+ action = ACTION_VIEW
41
+ putExtra(AUTH_REQUEST_TYPE_KEY, input.type)
42
+ }
43
+ }
44
+
45
+ override fun parseResult(resultCode: Int, intent: Intent?): AuthResult {
46
+ if (resultCode == RESULT_CANCELED || intent == null) {
47
+ return AuthResult.Canceled
48
+ }
49
+
50
+ val sessionSecret = intent.getStringExtra(SESSION_KEY) ?: return AuthResult.Canceled
51
+ val username = intent.getStringExtra(USERNAME_KEY) ?: return AuthResult.Canceled
52
+
53
+ return AuthResult.Success(
54
+ sessionSecret = sessionSecret,
55
+ username = username
56
+ )
57
+ }
58
+ }
59
+
60
+ var wasStarted = false
61
+
62
+ override fun onCreate(savedInstanceState: Bundle?) {
63
+ super.onCreate(savedInstanceState)
64
+
65
+ val extraType = intent.getStringExtra(AUTH_REQUEST_TYPE_KEY)
66
+ if (extraType != null) {
67
+ wasStarted = true
68
+ openWebBrowserAsync(startUrl = createAuthUrl(type = AuthRequestType.fromString(extraType)))
69
+ }
70
+ }
71
+
72
+ override fun onResume() {
73
+ super.onResume()
74
+ // onNewIntent will handle the response from the web browser
75
+ if (intent?.data?.host == "expo-dev-launcher") {
76
+ return
77
+ }
78
+
79
+ // We just open the browser
80
+ if (wasStarted) {
81
+ wasStarted = false
82
+ return
83
+ }
84
+
85
+ val resultIntent = Intent()
86
+ setResult(RESULT_CANCELED, resultIntent)
87
+ finish()
88
+ }
89
+
90
+ override fun onNewIntent(intent: Intent) {
91
+ super.onNewIntent(intent)
92
+
93
+ if (intent.action == ACTION_VIEW && intent.data?.scheme == "expo-dev-launcher" && intent.data?.host == "auth") {
94
+ val sessionSecret = intent.data?.getQueryParameter("session_secret")
95
+ val userNameOrEmail = intent.data?.getQueryParameter("username_or_email")
96
+
97
+ if (sessionSecret.isNullOrEmpty() || userNameOrEmail.isNullOrEmpty()) {
98
+ setResult(RESULT_CANCELED)
99
+ finish()
100
+ return
101
+ }
102
+
103
+ val resultIntent = Intent().apply {
104
+ putExtra(SESSION_KEY, sessionSecret)
105
+ putExtra(USERNAME_KEY, userNameOrEmail)
106
+ }
107
+ setResult(RESULT_OK, resultIntent)
108
+ finish()
109
+ }
110
+ }
111
+
112
+ private fun openWebBrowserAsync(startUrl: String) {
113
+ requireNotNull(startUrl)
114
+
115
+ val intent = createCustomTabsIntent()
116
+ intent.data = startUrl.toUri()
117
+
118
+ startActivity(intent)
119
+ }
120
+
121
+ private fun createCustomTabsIntent(): Intent {
122
+ val builder = CustomTabsIntent.Builder()
123
+ builder.setShowTitle(false)
124
+
125
+ val intent = builder.build().intent
126
+
127
+ // We cannot use builder's method enableUrlBarHiding, because there is no corresponding disable method and some browsers enables it by default.
128
+ intent.putExtra(CustomTabsIntent.EXTRA_ENABLE_URLBAR_HIDING, false)
129
+
130
+ return intent
131
+ }
132
+
133
+ private fun createAuthUrl(type: AuthRequestType): String {
134
+ return "${WEBSITE_ORIGIN}/${type.type}?confirm_account=1&app_redirect_uri=${URLEncoder.encode(REDIRECT_BASE, "UTF-8")}"
135
+ }
136
+ }
@@ -0,0 +1,20 @@
1
+ package expo.modules.devlauncher.compose
2
+
3
+ import android.content.Context
4
+ import android.widget.LinearLayout
5
+ import androidx.compose.ui.platform.ComposeView
6
+ import expo.modules.devmenu.compose.theme.AppTheme
7
+
8
+ class BindingView(context: Context) : LinearLayout(context) {
9
+ init {
10
+ addView(
11
+ ComposeView(context).apply {
12
+ setContent {
13
+ AppTheme {
14
+ DevLauncherBottomTabsNavigator()
15
+ }
16
+ }
17
+ }
18
+ )
19
+ }
20
+ }