expo-dev-launcher 0.8.4 → 0.10.1

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 (297) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/README.md +3 -367
  3. package/android/build.gradle +10 -6
  4. package/android/src/debug/assets/expo_dev_launcher_android.bundle +968 -419
  5. package/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt +30 -8
  6. package/android/src/debug/java/expo/modules/devlauncher/{DevLauncherPackage.kt → DevLauncherPackageDelegate.kt} +2 -6
  7. package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherClientHost.kt +5 -1
  8. package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoaderFactory.kt +3 -1
  9. package/android/src/debug/java/expo/modules/devlauncher/modules/DevLauncherInternalModule.kt +80 -4
  10. package/android/src/debug/res/drawable-hdpi/node_modules_reactnavigation_elements_src_assets_backicon.png +0 -0
  11. package/android/src/debug/res/drawable-hdpi/node_modules_reactnavigation_stack_src_views_assets_backicon.png +0 -0
  12. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_checkicon.png +0 -0
  13. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_chevronrighticon.png +0 -0
  14. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  15. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledinactiveicon.png +0 -0
  16. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_infoicon.png +0 -0
  17. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  18. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  19. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  20. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  21. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledinactiveicon.png +0 -0
  22. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_shakedeviceicon.png +0 -0
  23. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_showmenuatlaunchicon.png +0 -0
  24. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_terminalicon.png +0 -0
  25. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_threefingerlongpressicon.png +0 -0
  26. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  27. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_usericon.png +0 -0
  28. package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_xicon.png +0 -0
  29. package/android/src/debug/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backicon.png +0 -0
  30. package/android/src/debug/res/drawable-mdpi/node_modules_reactnavigation_elements_src_assets_backiconmask.png +0 -0
  31. package/android/src/debug/res/drawable-mdpi/node_modules_reactnavigation_stack_src_views_assets_backicon.png +0 -0
  32. package/android/src/debug/res/drawable-mdpi/node_modules_reactnavigation_stack_src_views_assets_backiconmask.png +0 -0
  33. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_checkicon.png +0 -0
  34. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_chevronrighticon.png +0 -0
  35. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  36. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledinactiveicon.png +0 -0
  37. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_infoicon.png +0 -0
  38. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  39. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  40. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  41. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  42. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledinactiveicon.png +0 -0
  43. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_shakedeviceicon.png +0 -0
  44. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_showmenuatlaunchicon.png +0 -0
  45. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_terminalicon.png +0 -0
  46. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_threefingerlongpressicon.png +0 -0
  47. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  48. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_usericon.png +0 -0
  49. package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_xicon.png +0 -0
  50. package/android/src/debug/res/drawable-xhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png +0 -0
  51. package/android/src/debug/res/drawable-xhdpi/node_modules_reactnavigation_stack_src_views_assets_backicon.png +0 -0
  52. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_checkicon.png +0 -0
  53. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_chevronrighticon.png +0 -0
  54. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
  55. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledinactiveicon.png +0 -0
  56. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_infoicon.png +0 -0
  57. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
  58. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
  59. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
  60. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
  61. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledinactiveicon.png +0 -0
  62. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_shakedeviceicon.png +0 -0
  63. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_showmenuatlaunchicon.png +0 -0
  64. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_terminalicon.png +0 -0
  65. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_threefingerlongpressicon.png +0 -0
  66. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
  67. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_usericon.png +0 -0
  68. package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_xicon.png +0 -0
  69. package/android/src/debug/res/drawable-xxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png +0 -0
  70. package/android/src/debug/res/drawable-xxhdpi/node_modules_reactnavigation_stack_src_views_assets_backicon.png +0 -0
  71. package/android/src/debug/res/drawable-xxxhdpi/node_modules_reactnavigation_elements_src_assets_backicon.png +0 -0
  72. package/android/src/debug/res/drawable-xxxhdpi/node_modules_reactnavigation_stack_src_views_assets_backicon.png +0 -0
  73. package/android/src/debug/res/raw/__node_modules_cssselect_lib_procedure.json +11 -0
  74. package/android/src/debug/res/raw/__node_modules_cssselect_node_modules_domserializer_foreignnames.json +102 -0
  75. package/android/src/debug/res/raw/__node_modules_csstree_data_patch.json +721 -0
  76. package/android/src/debug/res/raw/__node_modules_csstree_package.json +60 -0
  77. package/android/src/debug/res/raw/__node_modules_entities_lib_maps_decode.json +1 -0
  78. package/android/src/debug/res/raw/__node_modules_entities_lib_maps_entities.json +1 -0
  79. package/android/src/debug/res/raw/__node_modules_entities_lib_maps_legacy.json +1 -0
  80. package/android/src/debug/res/raw/__node_modules_entities_lib_maps_xml.json +1 -0
  81. package/android/src/debug/res/raw/__node_modules_mdndata_css_atrules.json +560 -0
  82. package/android/src/debug/res/raw/__node_modules_mdndata_css_properties.json +9163 -0
  83. package/android/src/debug/res/raw/__node_modules_mdndata_css_syntaxes.json +761 -0
  84. package/android/src/debug/res/raw/__reactnativelab_reactnative_package.json +160 -0
  85. package/android/src/main/AndroidManifest.xml +9 -1
  86. package/android/src/{release → main}/java/expo/modules/devlauncher/DevLauncherPackage.kt +3 -2
  87. package/android/src/main/java/expo/modules/devlauncher/helpers/DevLauncherInstallationIDHelper.kt +69 -0
  88. package/android/src/main/java/expo/modules/devlauncher/helpers/DevLauncherOkHttpExtension.kt +3 -2
  89. package/android/src/main/java/expo/modules/devlauncher/helpers/DevLauncherURLHelper.kt +1 -1
  90. package/android/src/main/java/expo/modules/devlauncher/helpers/DevLauncherUpdatesHelper.kt +8 -4
  91. package/android/src/main/java/expo/modules/devlauncher/koin/DevLauncherKoinApp.kt +2 -0
  92. package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherActivity.kt +2 -1
  93. package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherControllerInterface.kt +2 -0
  94. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorActivity.kt +70 -76
  95. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherStackAdapter.kt +39 -0
  96. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherUncaughtExceptionHandler.kt +87 -0
  97. package/android/src/main/java/expo/modules/devlauncher/launcher/manifest/DevLauncherManifestParser.kt +13 -3
  98. package/android/src/main/java/expo/modules/devlauncher/react/DevLauncherDevSupportManagerSwapper.kt +25 -3
  99. package/android/src/main/res/layout/error_console_fragment.xml +3 -3
  100. package/android/src/main/res/layout/error_console_list_item.xml +12 -20
  101. package/android/src/main/res/layout/error_fragment.xml +69 -65
  102. package/android/src/main/res/values/colors.xml +12 -7
  103. package/android/src/main/res/values/strings.xml +7 -4
  104. package/android/src/main/res/values/styles.xml +4 -4
  105. package/android/src/react-native-64/expo/modules/devlauncher/rncompatibility/DevLauncherDevSupportManager.kt +1 -1
  106. package/android/src/react-native-66/expo/modules/devlauncher/rncompatibility/DevLauncherDevSupportManager.kt +251 -0
  107. package/android/src/release/java/expo/modules/devlauncher/DevLauncherController.kt +4 -0
  108. package/android/src/release/java/expo/modules/devlauncher/DevLauncherPackageDelegate.kt +8 -0
  109. package/android/src/testDebug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoaderFactoryTest.kt +3 -1
  110. package/build/DevLauncher.d.ts +1 -0
  111. package/build/DevLauncher.d.ts.map +1 -0
  112. package/build/DevLauncherErrorManager.d.ts +1 -0
  113. package/build/DevLauncherErrorManager.d.ts.map +1 -0
  114. package/build/DevLauncherErrorManager.web.d.ts +1 -0
  115. package/build/DevLauncherErrorManager.web.d.ts.map +1 -0
  116. package/build/WebUnsupportedError.d.ts +1 -0
  117. package/build/WebUnsupportedError.d.ts.map +1 -0
  118. package/build/setUpErrorHandler.fx.d.ts +1 -0
  119. package/build/setUpErrorHandler.fx.d.ts.map +1 -0
  120. package/build/setUpErrorHandler.fx.web.d.ts +1 -0
  121. package/build/setUpErrorHandler.fx.web.d.ts.map +1 -0
  122. package/bundle/App.tsx +57 -0
  123. package/bundle/DevLauncherInternal.ts +2 -0
  124. package/bundle/DevMenu.ts +2 -2
  125. package/bundle/apiClient.ts +8 -0
  126. package/bundle/components/redesign/AppHeader.tsx +76 -0
  127. package/bundle/components/redesign/AppProviders.tsx +61 -0
  128. package/bundle/components/redesign/DeepLinkModal.tsx +163 -0
  129. package/bundle/components/redesign/DevServerExplainerModal.tsx +23 -0
  130. package/bundle/components/redesign/LoadAppErrorModal.tsx +10 -0
  131. package/bundle/components/redesign/LoadInitialData.tsx +27 -0
  132. package/bundle/components/redesign/LogoutConfirmationModal.tsx +48 -0
  133. package/bundle/components/redesign/PulseIndicator.tsx +56 -0
  134. package/bundle/components/redesign/Splash.tsx +12 -0
  135. package/bundle/components/redesign/UrlDropdown.tsx +123 -0
  136. package/bundle/functions/createAsyncStack.ts +193 -0
  137. package/bundle/functions/getDevSessionsAsync.ts +57 -0
  138. package/bundle/functions/getInitialData.ts +21 -0
  139. package/bundle/functions/getUserProfileAsync.ts +48 -0
  140. package/bundle/functions/restoreUserAsync.ts +15 -0
  141. package/bundle/functions/sleepAsync.ts +3 -0
  142. package/bundle/functions/startAuthSessionAsync.ts +24 -0
  143. package/bundle/functions/validateUrl.ts +11 -0
  144. package/bundle/hooks/useBuildInfo.tsx +30 -0
  145. package/bundle/hooks/useDebounce.tsx +44 -0
  146. package/bundle/hooks/useDevMenuSettings.tsx +100 -0
  147. package/bundle/hooks/useDevSessions.tsx +73 -0
  148. package/bundle/hooks/useIsMounted.ts +16 -0
  149. package/bundle/hooks/useModalStack.tsx +160 -0
  150. package/bundle/hooks/usePendingDeepLink.tsx +58 -0
  151. package/bundle/hooks/useRecentlyOpenedApps.tsx +62 -0
  152. package/bundle/hooks/useUser.tsx +101 -0
  153. package/bundle/index.ts +5 -1
  154. package/bundle/native-modules/DevLauncherInternal.ts +46 -0
  155. package/bundle/native-modules/DevMenu.ts +40 -0
  156. package/bundle/native-modules/DevMenuInternal.ts +46 -0
  157. package/bundle/native-modules/DevMenuWebBrowser.ts +91 -0
  158. package/bundle/screens/HomeScreen.tsx +278 -0
  159. package/bundle/screens/LauncherMainScreen.tsx +19 -23
  160. package/bundle/screens/SettingsScreen.tsx +197 -0
  161. package/bundle/screens/UserProfileScreen.tsx +234 -0
  162. package/bundle/test-utils.tsx +22 -0
  163. package/bundle/types.ts +5 -0
  164. package/expo-dev-launcher.podspec +4 -1
  165. package/expo-module.config.json +7 -0
  166. package/ios/EXDevLauncherController.h +7 -0
  167. package/ios/EXDevLauncherController.m +85 -10
  168. package/ios/EXDevLauncherInstallationIDHelper.swift +70 -0
  169. package/ios/EXDevLauncherInternal.m +26 -1
  170. package/ios/EXDevLauncherMenuDelegate.swift +23 -24
  171. package/ios/EXDevLauncherPendingDeepLinkRegistry.swift +6 -6
  172. package/ios/EXDevLauncherRecentlyOpenedAppsRegistry.swift +16 -12
  173. package/ios/EXDevLauncherURLHelper.swift +8 -6
  174. package/ios/EXDevLauncherUpdatesHelper.h +2 -1
  175. package/ios/EXDevLauncherUpdatesHelper.m +7 -3
  176. package/ios/EXDevLauncherUtils.swift +4 -4
  177. package/ios/Errors/EXDevLauncherAppError.swift +13 -0
  178. package/ios/Errors/EXDevLauncherErrorManager.swift +16 -44
  179. package/ios/Errors/EXDevLauncherErrorViewController.swift +43 -30
  180. package/ios/Errors/EXDevLauncherRedBox.m +2 -1
  181. package/ios/Errors/EXDevLauncherStackTrace.swift +9 -0
  182. package/ios/Errors/EXDevLauncherUncaughtExceptionHandler.swift +35 -0
  183. package/ios/Manifest/EXDevLauncherManifestHelper.swift +8 -8
  184. package/ios/Manifest/EXDevLauncherManifestParser.h +3 -1
  185. package/ios/Manifest/EXDevLauncherManifestParser.m +9 -1
  186. package/ios/ReactNative/EXDevLauncherBundleURLProviderInterceptor.swift +2 -2
  187. package/ios/ReactNative/EXDevLauncherRCTBridge.h +4 -0
  188. package/ios/ReactNative/EXDevLauncherRCTBridge.m +13 -6
  189. package/ios/ReactNative/EXDevLauncherRedBoxInterceptor.swift +9 -9
  190. package/ios/Tests/EXDevLauncherControllerTest.swift +48 -0
  191. package/ios/Tests/EXDevLauncherInstallationIDHelperTests.swift +29 -0
  192. package/ios/Tests/EXDevLauncherManifestParserTests.m +53 -5
  193. package/ios/Tests/EXDevLauncherMenuDelegateTest.swift +89 -0
  194. package/ios/Tests/EXDevLauncherPendingDeepLinkRegistryTest.swift +50 -0
  195. package/ios/Tests/EXDevLauncherRCTBridgeTest.swift +30 -0
  196. package/ios/Tests/EXDevLauncherRecentlyOpenedAppsRegistryTest.swift +37 -0
  197. package/ios/Tests/EXDevLauncherRecentlyOpenedAppsRegistryTests.swift +1 -1
  198. package/ios/Tests/EXDevLauncherTest.swift +17 -0
  199. package/ios/Tests/EXDevLauncherURLHelperTests.swift +6 -3
  200. package/ios/Tests/EXDevLauncherUpdatesHelperTests.m +12 -2
  201. package/ios/Views/EXDevLauncherErrorView.storyboard +157 -203
  202. package/ios/assets/__node_modules/css-select/lib/procedure.json +11 -0
  203. package/ios/assets/__node_modules/css-select/node_modules/dom-serializer/foreignNames.json +102 -0
  204. package/ios/assets/__node_modules/css-tree/data/patch.json +721 -0
  205. package/ios/assets/__node_modules/entities/lib/maps/decode.json +1 -0
  206. package/ios/assets/__node_modules/entities/lib/maps/entities.json +1 -0
  207. package/ios/assets/__node_modules/entities/lib/maps/legacy.json +1 -0
  208. package/ios/assets/__node_modules/entities/lib/maps/xml.json +1 -0
  209. package/ios/assets/__node_modules/mdn-data/css/at-rules.json +560 -0
  210. package/ios/assets/__node_modules/mdn-data/css/properties.json +9163 -0
  211. package/ios/assets/__node_modules/mdn-data/css/syntaxes.json +761 -0
  212. package/ios/assets/_expo-dev-client-components/assets/check-icon.png +0 -0
  213. package/ios/assets/_expo-dev-client-components/assets/check-icon@2x.png +0 -0
  214. package/ios/assets/_expo-dev-client-components/assets/check-icon@3x.png +0 -0
  215. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon.png +0 -0
  216. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@2x.png +0 -0
  217. package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@3x.png +0 -0
  218. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon.png +0 -0
  219. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@2x.png +0 -0
  220. package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@3x.png +0 -0
  221. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon.png +0 -0
  222. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@2x.png +0 -0
  223. package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@3x.png +0 -0
  224. package/ios/assets/_expo-dev-client-components/assets/info-icon.png +0 -0
  225. package/ios/assets/_expo-dev-client-components/assets/info-icon@2x.png +0 -0
  226. package/ios/assets/_expo-dev-client-components/assets/info-icon@3x.png +0 -0
  227. package/ios/assets/_expo-dev-client-components/assets/logo-icon.png +0 -0
  228. package/ios/assets/_expo-dev-client-components/assets/logo-icon@2x.png +0 -0
  229. package/ios/assets/_expo-dev-client-components/assets/logo-icon@3x.png +0 -0
  230. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon.png +0 -0
  231. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@2x.png +0 -0
  232. package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@3x.png +0 -0
  233. package/ios/assets/_expo-dev-client-components/assets/refresh-icon.png +0 -0
  234. package/ios/assets/_expo-dev-client-components/assets/refresh-icon@2x.png +0 -0
  235. package/ios/assets/_expo-dev-client-components/assets/refresh-icon@3x.png +0 -0
  236. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon.png +0 -0
  237. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@2x.png +0 -0
  238. package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@3x.png +0 -0
  239. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon.png +0 -0
  240. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@2x.png +0 -0
  241. package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@3x.png +0 -0
  242. package/ios/assets/_expo-dev-client-components/assets/shake-device-icon.png +0 -0
  243. package/ios/assets/_expo-dev-client-components/assets/shake-device-icon@2x.png +0 -0
  244. package/ios/assets/_expo-dev-client-components/assets/shake-device-icon@3x.png +0 -0
  245. package/ios/assets/_expo-dev-client-components/assets/show-menu-at-launch-icon.png +0 -0
  246. package/ios/assets/_expo-dev-client-components/assets/show-menu-at-launch-icon@2x.png +0 -0
  247. package/ios/assets/_expo-dev-client-components/assets/show-menu-at-launch-icon@3x.png +0 -0
  248. package/ios/assets/_expo-dev-client-components/assets/terminal-icon.png +0 -0
  249. package/ios/assets/_expo-dev-client-components/assets/terminal-icon@2x.png +0 -0
  250. package/ios/assets/_expo-dev-client-components/assets/terminal-icon@3x.png +0 -0
  251. package/ios/assets/_expo-dev-client-components/assets/three-finger-long-press-icon.png +0 -0
  252. package/ios/assets/_expo-dev-client-components/assets/three-finger-long-press-icon@2x.png +0 -0
  253. package/ios/assets/_expo-dev-client-components/assets/three-finger-long-press-icon@3x.png +0 -0
  254. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon.png +0 -0
  255. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@2x.png +0 -0
  256. package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@3x.png +0 -0
  257. package/ios/assets/_expo-dev-client-components/assets/user-icon.png +0 -0
  258. package/ios/assets/_expo-dev-client-components/assets/user-icon@2x.png +0 -0
  259. package/ios/assets/_expo-dev-client-components/assets/user-icon@3x.png +0 -0
  260. package/ios/assets/_expo-dev-client-components/assets/x-icon.png +0 -0
  261. package/ios/assets/_expo-dev-client-components/assets/x-icon@2x.png +0 -0
  262. package/ios/assets/_expo-dev-client-components/assets/x-icon@3x.png +0 -0
  263. package/ios/assets/node_modules/@react-navigation/elements/src/assets/back-icon-mask.png +0 -0
  264. package/ios/assets/node_modules/@react-navigation/elements/src/assets/back-icon.png +0 -0
  265. package/ios/assets/node_modules/@react-navigation/elements/src/assets/back-icon@2x.png +0 -0
  266. package/ios/assets/node_modules/@react-navigation/elements/src/assets/back-icon@3x.png +0 -0
  267. package/ios/assets/node_modules/@react-navigation/stack/src/views/assets/back-icon-mask.png +0 -0
  268. package/ios/assets/node_modules/@react-navigation/stack/src/views/assets/back-icon.png +0 -0
  269. package/ios/assets/node_modules/@react-navigation/stack/src/views/assets/back-icon@2x.png +0 -0
  270. package/ios/assets/node_modules/@react-navigation/stack/src/views/assets/back-icon@3x.png +0 -0
  271. package/ios/main.jsbundle +972 -422
  272. package/metro.config.js +26 -1
  273. package/package.json +32 -8
  274. package/plugin/build/resolveExpoUpdatesVersion.js +8 -1
  275. package/plugin/build/withDevLauncher.d.ts +1 -0
  276. package/plugin/build/withDevLauncher.js +79 -41
  277. package/plugin/build/withDevLauncherAppDelegate.js +43 -8
  278. package/plugin/src/resolveExpoUpdatesVersion.ts +7 -1
  279. package/plugin/src/withDevLauncher.ts +87 -37
  280. package/plugin/src/withDevLauncherAppDelegate.ts +48 -6
  281. package/react-native.config.js +3 -7
  282. package/setupTests.ts +55 -0
  283. package/write_embedded_bundle.sh +10 -2
  284. package/yarn-error.log +19045 -0
  285. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherAppErrorQueueAdapter.kt +0 -35
  286. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/fragments/DevLauncherErrorConsoleFragment.kt +0 -33
  287. package/android/src/main/java/expo/modules/devlauncher/launcher/errors/fragments/DevLauncherErrorFragment.kt +0 -33
  288. package/ios/EXDevLauncher.xcodeproj/project.pbxproj +0 -271
  289. package/ios/EXDevLauncher.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  290. package/ios/EXDevLauncher.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  291. package/ios/EXDevLauncher.xcodeproj/xcuserdata/brentvatne.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  292. package/ios/EXDevLauncher.xcworkspace/contents.xcworkspacedata +0 -7
  293. package/ios/EXDevLauncher.xcworkspace/xcuserdata/brentvatne.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  294. package/ios/Errors/EXDevLauncherErrorLogView.swift +0 -8
  295. package/ios/Errors/EXDevLauncherErrorLogViewController.swift +0 -59
  296. package/ios/Errors/EXDevLauncherErrorNavigationController.swift +0 -29
  297. package/ios/devvyc 2021-05-14 18-19-10/devvyc.ipa +0 -0
package/CHANGELOG.md CHANGED
@@ -10,11 +10,52 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 0.10.1 — 2022-01-17
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Fix bug on iOS where all URL schemes, rather than just `exp`, were replaced with `http`. ([#15796](https://github.com/expo/expo/pull/15796) by [@esamelson](https://github.com/esamelson))
18
+ - Fix detecting import when using double quotes. ([#15898](https://github.com/expo/expo/pull/15898) by [@janicduplessis](https://github.com/janicduplessis))
19
+
20
+ ## 0.10.0 — 2021-12-22
21
+
22
+ ### 🎉 New features
23
+
24
+ - Add persisted installation ID and include in manifest requests. ([#15538](https://github.com/expo/expo/pull/15538) by [@esamelson](https://github.com/esamelson))
25
+ - Improve dev session request logic and use device ID when available. ([#15542](https://github.com/expo/expo/pull/15542) by [@esamelson](https://github.com/esamelson))
26
+ - Improve error handling when opening the app from a deep link on Android. ([#15637](https://github.com/expo/expo/pull/15637) by [@lukmccall](https://github.com/lukmccall))
27
+ - Implement redesigned native error screen. ([#15618](https://github.com/expo/expo/pull/15618) & [#15531](https://github.com/expo/expo/pull/15531) by [@lukmccall](https://github.com/lukmccall))
28
+ - Redesign the home screen. ([#15343](https://github.com/expo/expo/pull/15343) by [#ajsmth](https://github.com/ajsmth))
29
+
30
+ ### 💡 Others
31
+
32
+ - Updated `@expo/config-plugins` from `4.0.2` to `4.0.14` ([#15621](https://github.com/expo/expo/pull/15621) by [@EvanBacon](https://github.com/EvanBacon))
33
+
34
+ ## 0.9.1 — 2021-12-15
35
+
36
+ ### 🐛 Bug fixes
37
+
38
+ - Fix plugin when `MainActivity.onNewIntent` exists. ([#15459](https://github.com/expo/expo/pull/15459) by [@janicduplessis](https://github.com/janicduplessis))
39
+ - Fix plugin when `expo-updates` is not present. ([#15541](https://github.com/expo/expo/pull/15541) by [@esamelson](https://github.com/esamelson))
40
+ - Include expo-platform header in manifest requests. ([#15563](https://github.com/expo/expo/pull/15563) by [@esamelson](https://github.com/esamelson))
41
+ - Fix plugin compatibility with SDK 44. ([#15562](https://github.com/expo/expo/pull/15562) & [#15570](https://github.com/expo/expo/pull/15570) by [@lukmccall](https://github.com/lukmccall) & [@esamelson](https://github.com/esamelson))
42
+
43
+ ## 0.9.0 — 2021-12-03
44
+
45
+ ### 🎉 New features
46
+
47
+ - Added support for th React Native `0.66.X`. ([#15242](https://github.com/expo/expo/pull/15242) by [@lukmccall](https://github.com/lukmccall))
48
+
49
+ ### 🐛 Bug fixes
50
+
51
+ - Fix `No native splash screen registered for given view controller` error happening when project is using both `expo-dev-client` and `expo-splash-screen` packages. ([#14745](https://github.com/expo/expo/pull/14745) by [@kudo](https://github.com/kudo))
52
+ - Fix cannot load url that starts with exp. (by [@lukmccall](https://github.com/lukmccall))
53
+
13
54
  ## 0.8.4 — 2021-10-21
14
55
 
15
56
  ### 🐛 Bug fixes
16
57
 
17
- - Fix crash in SDK 42 Android projects.
58
+ - Fix crash in SDK 42 Android projects. (by [@esamelson](https://github.com/esamelson))
18
59
 
19
60
  ## 0.8.3 — 2021-10-15
20
61
 
package/README.md CHANGED
@@ -1,371 +1,7 @@
1
1
  # expo-dev-launcher
2
2
 
3
- `expo-dev-launcher` is an npm package installable in any Expo or React Native project. Once installed, any Debug builds of your application will gain the ability to load projects from Expo CLI. Release builds of your application will not change other than the addition of a few header files. This package is intended to be included in your project through [`expo-dev-client`](https://docs.expo.io/clients/introduction/).
3
+ `expo-dev-launcher` is an npm package installable in any Expo or React Native project. Once installed, any Debug builds of your application will gain the ability to load projects from Expo CLI. Release builds of your application will not change other than the addition of a few header files. This package is intended to be included in your project through [`expo-dev-client`](https://docs.expo.dev/clients/introduction/).
4
4
 
5
- # ⚙️ Installation
5
+ ## Documentation
6
6
 
7
- Firstly, you need to add the `expo-dev-launcher` package to your project.
8
-
9
- <details>
10
- <summary>yarn</summary>
11
-
12
- ```bash
13
- yarn add expo-dev-launcher expo-dev-menu-interface
14
- ```
15
-
16
- </details>
17
-
18
- <details>
19
- <summary>npm</summary>
20
-
21
- ```bash
22
- npm install expo-dev-launcher expo-dev-menu-interface
23
- ```
24
-
25
- </details>
26
-
27
- <br>
28
-
29
- Then you can start to configure the native projects using steps below.
30
-
31
- ## 🤖 Android
32
-
33
- 1. Initialize the `DevLauncherController`.
34
-
35
- Open your `MainApplication.{java|kt}` and add the following lines:
36
-
37
- <details>
38
- <summary>Java</summary>
39
-
40
- ```java
41
- ...
42
- // You need to import the `DevLauncherController` class
43
- import expo.modules.devlauncher.DevLauncherController;
44
- ...
45
- public class MainApplication extends Application implements ReactApplication {
46
- ...
47
- @Override
48
- public void onCreate() {
49
- super.onCreate();
50
- ...
51
- DevLauncherController.initialize(this, mReactNativeHost); // Initialize the `DevLauncherController` with the `ReactNativeHost`
52
- }
53
- }
54
- ```
55
-
56
- </details>
57
- <details>
58
- <summary>Kotlin</summary>
59
-
60
- ```kotlin
61
- ...
62
- // You need to import the `DevLauncherController` class
63
- import expo.modules.devlauncher.DevLauncherController;
64
- ...
65
- public class MainApplication : Application(), ReactApplication {
66
- ...
67
- override public fun onCreate() {
68
- super.onCreate();
69
- ...
70
- DevLauncherController.initialize(this, mReactNativeHost); // Initialize the `DevLauncherController` with the `ReactNativeHost`
71
- }
72
- }
73
- ```
74
-
75
- </details>
76
- <br>
77
-
78
- 2. Wrap the default `ReactActivityDelegate` with the one from `DevLauncher`.
79
-
80
- Open your `MainActivity.{java|kt}` and add the following lines:
81
-
82
- <details>
83
- <summary>Java</summary>
84
-
85
- ```java
86
- ...
87
- // You need to import the `DevLauncherController` class
88
- import expo.modules.devlauncher.DevLauncherController;
89
- ...
90
- public class MainActivity extends DevMenuAwareReactActivity {
91
- ...
92
- @Override
93
- protected ReactActivityDelegate createReactActivityDelegate() {
94
- return DevLauncherController.wrapReactActivityDelegate(
95
- this,
96
- () -> new ReactActivityDelegate(this, getMainComponentName()) // Here you can pass your custom `ReactActivityDelegate`
97
- );
98
- }
99
- }
100
- ```
101
-
102
- </details>
103
- <details>
104
- <summary>Kotlin</summary>
105
-
106
- ```kotlin
107
- ...
108
- // You need to import the `DevLauncherController` class
109
- import expo.modules.devlauncher.DevLauncherController;
110
- ...
111
- public class MainActivity : DevMenuAwareReactActivity() {
112
- ...
113
- protected override fun ReactActivityDelegate createReactActivityDelegate(): ReactActivityDelegate {
114
- return DevLauncherController.wrapReactActivityDelegate(this) {
115
- ReactActivityDelegate(this, getMainComponentName()) // Here you can pass your custom `ReactActivityDelegate`
116
- });
117
- }
118
- }
119
- ```
120
-
121
- </details>
122
-
123
- <br>
124
-
125
- 3. Pass new intents to the `DevLauncherController`.
126
-
127
- > **Note:** This step is not required but without it, **deep-link** handling **won't work**.
128
-
129
- Open your `MainActivity.{java|kt}` and add the following method:
130
-
131
- <details>
132
- <summary>Java</summary>
133
-
134
- ```java
135
- ...
136
- public class MainActivity extends DevMenuAwareReactActivity {
137
- ...
138
- @Override
139
- public void onNewIntent(Intent intent) {
140
- if (DevLauncherController.tryToHandleIntent(this, intent)) {
141
- return;
142
- }
143
- super.onNewIntent(intent);
144
- }
145
- }
146
- ```
147
-
148
- </details>
149
- <details>
150
- <summary>Kotlin</summary>
151
-
152
- ```kotlin
153
- ...
154
- public class MainActivity : DevMenuAwareReactActivity() {
155
- ...
156
- public override fun onNewIntent(intent: Intent) {
157
- if (DevLauncherController.tryToHandleIntent(this, intent)) {
158
- return;
159
- }
160
- super.onNewIntent(intent);
161
- }
162
- }
163
- ```
164
-
165
- </details>
166
-
167
- ## 🍏 iOS
168
-
169
- 1. Run `npx pod-install` after installing the npm package.
170
-
171
- 2. Set up the `EXDevLauncherControllerDelegate`.
172
-
173
- <details>
174
- <summary>Objective-C</summary>
175
-
176
- Open your `AppDelegate.h` and implement `EXDevLauncherControllerDelegate`.
177
-
178
- ```objc
179
- ...
180
- // You need to import the `EXDevLauncherController` and `EXDevLauncherControllerDelegate.
181
- #import <EXDevLauncherController.h>
182
- ...
183
- @interface AppDelegate : UMAppDelegateWrapper <RCTBridgeDelegate, EXDevLauncherControllerDelegate> // Here you're implementing the `EXDevLauncherControllerDelegate`
184
-
185
- @end
186
-
187
- ```
188
-
189
- Open your `AppDelegate.m` and add the following method:
190
-
191
- ```objc
192
- ...
193
- @implementation AppDelegate
194
- ...
195
- - (void)developmentClientController:(EXDevLauncherController * )devLauncherController
196
- didStartWithSuccess:(BOOL)success
197
- {
198
- devLauncherController.appBridge = [self initializeReactNativeApp];
199
- }
200
- ...
201
- @end
202
- ```
203
-
204
- </details>
205
-
206
- <details>
207
- <summary>Swift</summary>
208
-
209
- Open your `AppDelegate.swift` and implement `EXDevLauncherControllerDelegate`.
210
-
211
- ```swift
212
- ...
213
- @UIApplicationMain
214
- class AppDelegate: UMAppDelegateWrapper, EXDevLauncherControllerDelegate { // You need to implement the `EXDevLauncherControllerDelegate`
215
- ...
216
- func developmentClientController(_ devLauncherController: EXDevLauncherController!, didStartWithSuccess success: Bool) {
217
- devLauncherController.appBridge = initializeReactNativeBridge()
218
- }
219
- ...
220
- }
221
- ```
222
-
223
- </details>
224
-
225
- <br>
226
-
227
- 3. Start the `EXDevLauncherController`.
228
-
229
- Open your `AppDelegate.{m|swift}` and add the following lines:
230
-
231
- <details>
232
- <summary>Objective-C</summary>
233
-
234
- ```objc
235
- @implementation AppDelegate
236
- ...
237
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
238
- {
239
- // Remove [self initializeReactNativeApp];
240
- // and instead add:
241
- EXDevLauncherController *controller = [EXDevLauncherController sharedInstance];
242
- [controller startWithWindow:self.window delegate:self launchOptions:launchOptions];
243
- }
244
- ...
245
- @end
246
- ```
247
-
248
- </details>
249
- <details>
250
- <summary>Swift</summary>
251
-
252
- ```swift
253
- ...
254
- @UIApplicationMain
255
- class AppDelegate: UMAppDelegateWrapper {
256
- ...
257
- override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
258
- // Remove
259
- // [self initializeReactNativeApp];
260
- // and instead add:
261
- let controller = EXDevLauncherController.sharedInstance()
262
- controller?.start(with: window, delegate: self, launchOptions: launchOptions);
263
- }
264
- ...
265
- }
266
- ```
267
-
268
- </details>
269
-
270
- <br>
271
-
272
- 4. Change the source URL.
273
-
274
- Open your `AppDelegate.{m|swift}` and add the following lines:
275
-
276
- <details>
277
- <summary>Objective-C</summary>
278
-
279
- ```objc
280
- ...
281
- @implementation AppDelegate
282
- ...
283
- - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
284
- {
285
- // Remove
286
- // return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
287
- // and instead add:
288
- return [[EXDevLauncherController sharedInstance] sourceUrl];
289
- }
290
- ...
291
- @end
292
- ```
293
-
294
- </details>
295
- <details>
296
- <summary>Swift</summary>
297
-
298
- ```swift
299
- ...
300
- @UIApplicationMain
301
- class AppDelegate: UMAppDelegateWrapper {
302
- ...
303
- func sourceURL(for bridge: RCTBridge!) -> URL! {
304
- // Remove
305
- // return RCTBundleURLProvider.sharedSettings()?.jsBundleURL(forBundleRoot: "index", fallbackResource: nil)
306
- // and instead add:
307
- return EXDevLauncherController.sharedInstance()?.sourceUrl()
308
- }
309
- ...
310
- }
311
- ```
312
-
313
- </details>
314
-
315
- <br>
316
-
317
- 5. Handle deep links.
318
-
319
- Open your `AppDelegate.{m|swift}` and add the following lines:
320
-
321
- <details>
322
- <summary>Objective-C</summary>
323
-
324
- ```objc
325
- ...
326
- #import <React/RCTLinkingManager.h>
327
- ...
328
- @implementation AppDelegate
329
-
330
- - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
331
- {
332
- if ([EXDevLauncherController.sharedInstance onDeepLink:url options:options]) {
333
- return true;
334
- }
335
- return [RCTLinkingManager application:application openURL:url options:options];
336
- }
337
- ...
338
- @end
339
- ```
340
-
341
- </details>
342
- <details>
343
- <summary>Swift</summary>
344
-
345
- ```swift
346
- ...
347
- class AppDelegate: UMAppDelegateWrapper {
348
- ...
349
- func initializeReactNativeBridge() -> RCTBridge? {
350
- // change
351
- // RCTBridge(delegate: self, launchOptions: self.launchOptions)
352
- // to
353
- // RCTBridge(delegate: self, launchOptions: EXDevelopmentClientController.sharedInstance()!.getLaunchOptions())
354
- // the final version looks like this:
355
- if let bridge = RCTBridge(delegate: self, launchOptions: EXDevelopmentClientController.sharedInstance()!.getLaunchOptions()) {
356
- ...
357
- }
358
- }
359
- ...
360
- override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
361
- if (useDevClient && EXDevLauncherController.sharedInstance()!.onDeepLink(url, options: options)) {
362
- return true;
363
- }
364
-
365
- return RCTLinkingManager.application(app, open: url, options: options)
366
- }
367
- ...
368
- }
369
- ```
370
-
371
- </details>
7
+ You can find the documentation under [https://docs.expo.dev/clients/introduction](https://docs.expo.dev/clients/introduction).
@@ -15,7 +15,7 @@ buildscript {
15
15
  }
16
16
 
17
17
  dependencies {
18
- classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.4.21')}")
18
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.6.10')}")
19
19
  }
20
20
  }
21
21
 
@@ -25,7 +25,7 @@ android {
25
25
  minSdkVersion safeExtGet('minSdkVersion', 21)
26
26
  targetSdkVersion safeExtGet('targetSdkVersion', 30)
27
27
  versionCode 9
28
- versionName "0.8.4"
28
+ versionName "0.10.1"
29
29
  }
30
30
 
31
31
  lintOptions {
@@ -57,7 +57,9 @@ android {
57
57
  java {
58
58
  def rnVersion = getRNVersion()
59
59
 
60
- if (rnVersion >= versionToNumber(0, 65, 0)) {
60
+ if (rnVersion >= versionToNumber(0, 66, 0)) {
61
+ srcDirs += "src/react-native-66"
62
+ } else if (rnVersion >= versionToNumber(0, 65, 0)) {
61
63
  srcDirs += "src/react-native-65"
62
64
  } else {
63
65
  srcDirs += 'src/react-native-64'
@@ -90,9 +92,11 @@ repositories {
90
92
  }
91
93
 
92
94
  dependencies {
95
+ implementation project(":expo-modules-core")
93
96
  implementation project(":expo-dev-menu-interface")
94
97
  implementation project(":expo-manifests")
95
98
  implementation project(":expo-updates-interface")
99
+ implementation project(":expo-dev-menu")
96
100
 
97
101
  //noinspection GradleDynamicVersion
98
102
  implementation 'com.facebook.react:react-native:+' // From node_modules
@@ -108,10 +112,10 @@ dependencies {
108
112
  api "androidx.appcompat:appcompat:1.1.0"
109
113
  api "androidx.lifecycle:lifecycle-extensions:2.2.0"
110
114
 
111
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet('kotlinVersion', '1.4.21')}"
115
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet('kotlinVersion', '1.6.10')}"
112
116
  implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3")
113
117
  implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1")
114
- implementation "org.jetbrains.kotlin:kotlin-reflect:${safeExtGet('kotlinVersion', '1.4.21')}"
118
+ implementation "org.jetbrains.kotlin:kotlin-reflect:${safeExtGet('kotlinVersion', '1.6.10')}"
115
119
 
116
120
  api "io.insert-koin:koin-core:3.1.2"
117
121
 
@@ -130,7 +134,7 @@ configurations.all {
130
134
  resolutionStrategy.eachDependency { DependencyResolveDetails details ->
131
135
  def requested = details.requested
132
136
  if (requested.group == 'org.jetbrains.kotlin') {
133
- details.useVersion safeExtGet('kotlinVersion', '1.4.21')
137
+ details.useVersion safeExtGet('kotlinVersion', '1.6.10')
134
138
  }
135
139
  }
136
140
  }