miaoda-expo-dev-launcher-55 0.1.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.
- package/.eslintrc.js +2 -0
- package/.gitattributes +1 -0
- package/README.md +16 -0
- package/android/README.md +14 -0
- package/android/build.gradle +168 -0
- package/android/src/debug/AndroidManifest.xml +40 -0
- package/android/src/debug/graphql/GetBranches.graphql +44 -0
- package/android/src/debug/graphql/GetUpdates.graphql +21 -0
- package/android/src/debug/graphql/Me.graphql +18 -0
- package/android/src/debug/graphql/schema.graphqls +9850 -0
- package/android/src/debug/java/com/facebook/react/devsupport/DevLauncherDevServerHelper.kt +100 -0
- package/android/src/debug/java/com/facebook/react/devsupport/DevLauncherSettings.kt +22 -0
- package/android/src/debug/java/com/facebook/react/devsupport/NonFinalBridgeDevSupportManager.kt +109 -0
- package/android/src/debug/java/com/facebook/react/devsupport/NonFinalBridgelessDevSupportManager.kt +93 -0
- package/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt +586 -0
- package/android/src/debug/java/expo/modules/devlauncher/DevLauncherPackageDelegate.kt +135 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/AuthActivity.kt +136 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/BindingView.kt +29 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/DevLauncherBottomTabsNavigator.kt +196 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/Session.kt +33 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/UpdatesModels.kt +14 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchViewModel.kt +105 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchesViewModel.kt +157 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/CrashReportModel.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/ErrorViewModel.kt +50 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/HomeViewModel.kt +238 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/ProfileViewModel.kt +82 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/SettingsViewModel.kt +98 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/Accordion.kt +96 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/AsyncImage.kt +48 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/CircularProgressBar.kt +114 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/DefaultScaffold.kt +27 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/CrashReport.kt +38 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/DevelopmentServers.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Home.kt +50 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Profile.kt +155 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Routes.kt +23 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Settings.kt +18 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Updates.kt +107 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchScreen.kt +252 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchesScreen.kt +345 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/CrashReportScreen.kt +118 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/DefaultLaunchErrorScreen.kt +95 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/ErrorScreen.kt +133 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/HomeScreen.kt +274 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/NoUpdatesScreen.kt +90 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/SettingsScreen.kt +362 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountAvatar.kt +40 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountSelector.kt +82 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ActionButton.kt +56 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AnimatedPackagerCard.kt +76 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppHeader.kt +128 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppLoadingErrorDialog.kt +110 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomSheet.kt +87 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabBar.kt +80 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabButton.kt +68 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/DefaultScreenContainer.kt +23 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/DevLauncherLoadingView.kt +120 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/DevelopmentSession.kt +158 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/FetchDevelopmentServersButton.kt +59 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/LauncherIcons.kt +252 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/PullToRefresh.kt +165 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/RunningAppCard.kt +107 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ScanQRCodeButton.kt +55 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ServerUrlInput.kt +115 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/SignUp.kt +42 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/StackTrace.kt +50 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/DateFormat.kt +40 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/Scrollbar.kt +65 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/UpdatesUtils.kt +12 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/UrlUtils.kt +31 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/WithIsLast.kt +32 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherColorsHelper.kt +31 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherCoroutinesExtensions.kt +20 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherEdgeToEdgeHelper.kt +18 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherInstallationIDHelper.kt +69 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherMetadataHelper.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherOkHttpExtensions.kt +49 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherReactUtils.kt +180 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherReflectionExtensions.kt +45 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherURLHelper.kt +30 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherUpdatesHelper.kt +64 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherActivity.kt +38 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherControllerInterface.kt +35 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherIntentRegistry.kt +31 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherLifecycle.kt +27 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherNetworkInterceptor.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherReactActivityDelegateSupplier.kt +8 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistry.kt +109 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherAppError.kt +17 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorActivity.kt +102 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorRegistry.kt +58 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherUncaughtExceptionHandler.kt +134 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoader.kt +99 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoaderFactory.kt +80 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherEmbeddedAppLoader.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherExpoAppLoader.kt +73 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherLocalAppLoader.kt +23 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherPublishedAppLoader.kt +23 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherReactNativeAppLoader.kt +18 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/manifest/DevLauncherManifestParser.kt +52 -0
- package/android/src/debug/java/expo/modules/devlauncher/launcher/manifest/DevLauncherManifestTypes.kt +13 -0
- package/android/src/debug/java/expo/modules/devlauncher/logs/DevLauncherRemoteLog.kt +32 -0
- package/android/src/debug/java/expo/modules/devlauncher/logs/DevLauncherRemoteLogManager.kt +45 -0
- package/android/src/debug/java/expo/modules/devlauncher/modules/DevLauncherExceptions.kt +12 -0
- package/android/src/debug/java/expo/modules/devlauncher/modules/DevLauncherModule.kt +29 -0
- package/android/src/debug/java/expo/modules/devlauncher/modules/ExpoDevLauncherModule.kt +33 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdDiscovery.kt +25 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdDiscoveryApi34.kt +57 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdDiscoveryBase.kt +244 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdDiscoveryLegacy.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdDiscoveryListener.kt +33 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/NsdServiceInfoExtensions.kt +26 -0
- package/android/src/debug/java/expo/modules/devlauncher/nsd/ResolveService.kt +67 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherBridgelessDevSupportManager.kt +104 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherDevSupportManagerFactory.kt +61 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherDevSupportManagerSwapper.kt +122 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherPackagerConnectionSettings.kt +13 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherReactNativeHostHandler.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/activitydelegates/DevLauncherReactActivityNOPDelegate.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/react/activitydelegates/DevLauncherReactActivityRedirectDelegate.kt +18 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/ApolloClientService.kt +98 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/AppService.kt +77 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/DependencyInjection.kt +105 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/ErrorRegistryService.kt +13 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/HttpClientService.kt +84 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/ImageLoaderService.kt +81 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/NsdPreferences.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/PackagerService.kt +41 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/SessionService.kt +112 -0
- package/android/src/debug/java/expo/modules/devlauncher/splashscreen/DevLauncherSplashScreen.kt +34 -0
- package/android/src/debug/java/expo/modules/devlauncher/splashscreen/DevLauncherSplashScreenProvider.kt +18 -0
- package/android/src/debug/res/drawable/check_circle.xml +10 -0
- package/android/src/debug/res/drawable/chevron_right.xml +10 -0
- package/android/src/debug/res/drawable/download.xml +13 -0
- package/android/src/debug/res/drawable/expo_logo.xml +9 -0
- package/android/src/debug/res/drawable/home.xml +10 -0
- package/android/src/debug/res/drawable/link.xml +13 -0
- package/android/src/debug/res/drawable/log_in.xml +12 -0
- package/android/src/debug/res/drawable/package_search.xml +13 -0
- package/android/src/debug/res/drawable/plus.xml +9 -0
- package/android/src/debug/res/drawable/scan.xml +42 -0
- package/android/src/debug/res/drawable/settings.xml +14 -0
- package/android/src/debug/res/drawable/show_at_launch.xml +12 -0
- package/android/src/debug/res/drawable/updates_nav.xml +10 -0
- package/android/src/debug/res/drawable/user.xml +13 -0
- package/android/src/debug/res/drawable-mdpi/branch_icon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/extensions_icon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/update_icon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/branch_icon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/extensions_icon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/update_icon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/branch_icon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/extensions_icon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/update_icon.png +0 -0
- package/android/src/debug/res/values/styles.xml +8 -0
- package/android/src/disableInRelease/java/expo/modules/devlauncher/DevLauncherPackageDelegate.kt +17 -0
- package/android/src/disableInRelease/java/expo/modules/devlauncher/modules/ExpoDevLauncherModule.kt +13 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/devlauncher/DevLauncherPackage.kt +26 -0
- package/app.plugin.js +1 -0
- package/expo-dev-launcher-gradle-plugin/build.gradle.kts +40 -0
- package/expo-dev-launcher-gradle-plugin/src/main/kotlin/expo/modules/devlauncher/DevLauncherPlugin.kt +129 -0
- package/expo-dev-launcher.podspec +143 -0
- package/expo-module.config.json +21 -0
- package/ios/Assets.xcassets/Contents.json +6 -0
- package/ios/Assets.xcassets/TabBarTint.colorset/Contents.json +38 -0
- package/ios/Assets.xcassets/branch-icon.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon-light.png +0 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon.png +0 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon@2x.png +0 -0
- package/ios/Assets.xcassets/branch-icon.imageset/branch-icon@3x.png +0 -0
- package/ios/Assets.xcassets/expo-go-logo.imageset/Contents.json +21 -0
- package/ios/Assets.xcassets/expo-go-logo.imageset/expo-go logo.png +0 -0
- package/ios/Assets.xcassets/extensions-icon.imageset/Contents.json +26 -0
- package/ios/Assets.xcassets/extensions-icon.imageset/extensions-filled-inactive-icon.png +0 -0
- package/ios/Assets.xcassets/extensions-icon.imageset/extensions-filled-inactive-icon@2x.png +0 -0
- package/ios/Assets.xcassets/extensions-icon.imageset/extensions-filled-inactive-icon@3x.png +0 -0
- package/ios/Assets.xcassets/extensions.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/extensions.imageset/extensions-icon.png +0 -0
- package/ios/Assets.xcassets/extensions.imageset/extensions-icon@2x.png +0 -0
- package/ios/Assets.xcassets/extensions.imageset/extensions-icon@3x.png +0 -0
- package/ios/Assets.xcassets/log-in.imageset/Contents.json +21 -0
- package/ios/Assets.xcassets/log-in.imageset/log-in.png +0 -0
- package/ios/Assets.xcassets/radar-icon.imageset/Contents.json +21 -0
- package/ios/Assets.xcassets/radar-icon.imageset/radar-icon.png +0 -0
- package/ios/Assets.xcassets/refresh-icon.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/refresh-icon.imageset/refresh-icon.png +0 -0
- package/ios/Assets.xcassets/refresh-icon.imageset/refresh-icon@2x.png +0 -0
- package/ios/Assets.xcassets/refresh-icon.imageset/refresh-icon@3x.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon-light.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon@2x.png +0 -0
- package/ios/Assets.xcassets/shake-device.imageset/shake-device-icon@3x.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon-light.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon@2x.png +0 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/show-menu-at-launch-icon@3x.png +0 -0
- package/ios/Assets.xcassets/terminal-icon.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/terminal-icon.imageset/terminal-icon.png +0 -0
- package/ios/Assets.xcassets/terminal-icon.imageset/terminal-icon@2x.png +0 -0
- package/ios/Assets.xcassets/terminal-icon.imageset/terminal-icon@3x.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon-light.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon@2x.png +0 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/three-finger-long-press-icon@3x.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon-light.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon@2x.png +0 -0
- package/ios/Assets.xcassets/update-icon.imageset/update-icon@3x.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon 1.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon-light.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon-light@2x.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon-light@3x.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon@2x 1.png +0 -0
- package/ios/Assets.xcassets/user-icon.imageset/user-icon@3x 1.png +0 -0
- package/ios/DevLauncherDevMenuDelegate.swift +18 -0
- package/ios/DevLauncherNetworkInterceptor.swift +92 -0
- package/ios/EXDevLauncher.h +11 -0
- package/ios/EXDevLauncher.m +33 -0
- package/ios/EXDevLauncherController.h +97 -0
- package/ios/EXDevLauncherController.m +785 -0
- package/ios/EXDevLauncherInstallationIDHelper.swift +76 -0
- package/ios/EXDevLauncherPendingDeepLinkListener.swift +5 -0
- package/ios/EXDevLauncherPendingDeepLinkRegistry.swift +34 -0
- package/ios/EXDevLauncherRecentlyOpenedAppsRegistry.swift +112 -0
- package/ios/EXDevLauncherURLHelper.swift +88 -0
- package/ios/EXDevLauncherUpdatesHelper.h +16 -0
- package/ios/EXDevLauncherUpdatesHelper.m +33 -0
- package/ios/EXDevLauncherUtils.swift +66 -0
- package/ios/Errors/EXDevLauncherAppError.swift +13 -0
- package/ios/Errors/EXDevLauncherErrorManager.swift +96 -0
- package/ios/Errors/EXDevLauncherErrorRegistry.swift +71 -0
- package/ios/Errors/EXDevLauncherRedBox.h +22 -0
- package/ios/Errors/EXDevLauncherRedBox.m +146 -0
- package/ios/Errors/EXDevLauncherUncaughtExceptionHandler.swift +74 -0
- package/ios/Headers/EXDevLauncherRedBoxProtocol.h +37 -0
- package/ios/Headers/RCTBundleURLProvider+Private.h +9 -0
- package/ios/Headers/RCTCxxBridge+Private.h +13 -0
- package/ios/Logs/EXDevLauncherRemoteLogsManager.swift +55 -0
- package/ios/Manifest/EXDevLauncherManifestHelper.swift +78 -0
- package/ios/Manifest/EXDevLauncherManifestParser.h +26 -0
- package/ios/Manifest/EXDevLauncherManifestParser.m +116 -0
- package/ios/Modules/DevLauncherExceptions.swift +15 -0
- package/ios/Modules/DevLauncherModule.swift +26 -0
- package/ios/ReactDelegateHandler/ExpoDevLauncherAppDelegateSubscriber.swift +15 -0
- package/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift +177 -0
- package/ios/ReactNative/EXDevLauncherEarlySetup.m +35 -0
- package/ios/ReactNative/EXDevLauncherRCTDevSettings.h +12 -0
- package/ios/ReactNative/EXDevLauncherRCTDevSettings.m +47 -0
- package/ios/ReactNative/EXDevLauncherRedBoxInterceptor.swift +69 -0
- package/ios/SwiftUI/AccountSheet.swift +245 -0
- package/ios/SwiftUI/CrashReportView.swift +185 -0
- package/ios/SwiftUI/Data.swift +55 -0
- package/ios/SwiftUI/DevLauncherErrors.swift +38 -0
- package/ios/SwiftUI/DevLauncherLoadingView.swift +89 -0
- package/ios/SwiftUI/DevLauncherTabBarManager.swift +41 -0
- package/ios/SwiftUI/DevLauncherViewController.swift +84 -0
- package/ios/SwiftUI/DevLauncherViewModel.swift +617 -0
- package/ios/SwiftUI/DevLauncherViews.swift +238 -0
- package/ios/SwiftUI/DevServerInfoModal.swift +78 -0
- package/ios/SwiftUI/DevServersView.swift +242 -0
- package/ios/SwiftUI/ErrorView.swift +136 -0
- package/ios/SwiftUI/GraphQL/APIClient.swift +79 -0
- package/ios/SwiftUI/GraphQL/Models.swift +116 -0
- package/ios/SwiftUI/GraphQL/Queries.swift +150 -0
- package/ios/SwiftUI/HomeTabView.swift +123 -0
- package/ios/SwiftUI/LocalNetworkPermissionView.swift +204 -0
- package/ios/SwiftUI/Navigation/Navigation.swift +147 -0
- package/ios/SwiftUI/NetworkUtilities.swift +213 -0
- package/ios/SwiftUI/SettingsTabView.swift +282 -0
- package/ios/SwiftUI/StackFrameView.swift +29 -0
- package/ios/SwiftUI/UpdatesTab/NotSignedInView.swift +45 -0
- package/ios/SwiftUI/UpdatesTab/NotUsingUpdatesView.swift +38 -0
- package/ios/SwiftUI/UpdatesTab/UpdateRow.swift +80 -0
- package/ios/SwiftUI/UpdatesTab/UpdateUtils.swift +5 -0
- package/ios/SwiftUI/UpdatesTab/UpdatesListView.swift +197 -0
- package/ios/SwiftUI/UpdatesTab/UpdatesTabView.swift +31 -0
- package/ios/SwiftUI/Utils/Avatar.swift +67 -0
- package/ios/SwiftUI/Utils/Utils.swift +67 -0
- package/ios/Unsafe/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.h +17 -0
- package/ios/Unsafe/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.m +88 -0
- package/package.json +44 -0
- package/plugin/build/index.d.ts +3 -0
- package/plugin/build/index.js +3 -0
- package/plugin/build/pluginConfig.d.ts +63 -0
- package/plugin/build/pluginConfig.js +110 -0
- package/plugin/build/withDevLauncher.d.ts +4 -0
- package/plugin/build/withDevLauncher.js +185 -0
- package/plugin/index.js +1 -0
- package/plugin/src/index.ts +3 -0
- package/plugin/src/pluginConfig.ts +175 -0
- package/plugin/src/withDevLauncher.ts +229 -0
- package/plugin/tsconfig.json +9 -0
- package/plugin/tsconfig.tsbuildinfo +1 -0
package/.eslintrc.js
ADDED
package/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*.pbxproj -text
|
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# expo-dev-launcher
|
|
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.dev/versions/latest/sdk/dev-client/).
|
|
4
|
+
|
|
5
|
+
## Documentation
|
|
6
|
+
|
|
7
|
+
You can find more information in the [Expo documentation](https://docs.expo.dev/develop/development-builds/introduction).
|
|
8
|
+
|
|
9
|
+
## Contributing
|
|
10
|
+
|
|
11
|
+
The Dev Launcher UI is built with native platform UI toolkits:
|
|
12
|
+
|
|
13
|
+
- **iOS**: SwiftUI (see `ios/SwiftUI/`)
|
|
14
|
+
- **Android**: Jetpack Compose (see `android/src/debug/java/expo/modules/devlauncher/compose/`)
|
|
15
|
+
|
|
16
|
+
Local development is usually done through [`bare-expo`](/apps/bare-expo). Recompile `bare-expo` after making changes to the native code.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
README
|
|
2
|
+
======
|
|
3
|
+
|
|
4
|
+
If you want to publish the lib as a maven dependency, follow these steps before publishing a new version to npm:
|
|
5
|
+
|
|
6
|
+
1. Be sure to have the Android [SDK](https://developer.android.com/studio/index.html) and [NDK](https://developer.android.com/ndk/guides/index.html) installed
|
|
7
|
+
2. Be sure to have a `local.properties` file in this folder that points to the Android SDK and NDK
|
|
8
|
+
```
|
|
9
|
+
ndk.dir=/Users/{username}/Library/Android/sdk/ndk-bundle
|
|
10
|
+
sdk.dir=/Users/{username}/Library/Android/sdk
|
|
11
|
+
```
|
|
12
|
+
3. Delete the `maven` folder
|
|
13
|
+
4. Run `./gradlew installArchives`
|
|
14
|
+
5. Verify that latest set of generated files is in the maven folder with the correct version number
|
|
@@ -0,0 +1,168 @@
|
|
|
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.4.2")
|
|
9
|
+
}
|
|
10
|
+
}
|
|
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
|
+
|
|
18
|
+
def configureInRelease = findProperty("expo.devlauncher.configureInRelease") == "true"
|
|
19
|
+
if (configureInRelease) {
|
|
20
|
+
println("expo-dev-launcher will be enabled in release")
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
expoModule {
|
|
25
|
+
canBePublished false
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
group = "host.exp.exponent"
|
|
29
|
+
version = "55.0.10"
|
|
30
|
+
|
|
31
|
+
android {
|
|
32
|
+
namespace "expo.modules.devlauncher"
|
|
33
|
+
defaultConfig {
|
|
34
|
+
versionCode 9
|
|
35
|
+
versionName "55.0.10"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
buildTypes {
|
|
39
|
+
create("debugOptimized") {
|
|
40
|
+
initWith(buildTypes.debug)
|
|
41
|
+
matchingFallbacks += ["release"]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
buildTypes.each {
|
|
45
|
+
it.buildConfigField 'String', 'VERSION', "\"${defaultConfig.versionName}\""
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
sourceSets {
|
|
50
|
+
debugOptimized {
|
|
51
|
+
setRoot 'src/debug'
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
release {
|
|
56
|
+
if (configureInRelease) {
|
|
57
|
+
java.srcDir 'src/debug/java'
|
|
58
|
+
res.srcDir 'src/debug/res'
|
|
59
|
+
} else {
|
|
60
|
+
java.srcDir 'src/disableInRelease/java'
|
|
61
|
+
res.srcDir 'src/disableInRelease/res'
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
buildFeatures {
|
|
67
|
+
buildConfig true
|
|
68
|
+
viewBinding true
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
apollo {
|
|
73
|
+
service("service") {
|
|
74
|
+
packageName.set("expo.modules.devlauncher")
|
|
75
|
+
srcDir("src/debug/graphql")
|
|
76
|
+
|
|
77
|
+
introspection {
|
|
78
|
+
endpointUrl.set("https://api.expo.dev/graphql")
|
|
79
|
+
schemaFile.set(file("src/debug/graphql/schema.graphqls"))
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
outputDir.set(project.layout.buildDirectory.dir("generated/apollo"))
|
|
83
|
+
outputDirConnection {
|
|
84
|
+
connectToKotlinSourceSet("debug")
|
|
85
|
+
connectToKotlinSourceSet("debugOptimized")
|
|
86
|
+
|
|
87
|
+
if (configureInRelease) {
|
|
88
|
+
connectToKotlinSourceSet("release")
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
repositories {
|
|
95
|
+
// ref: https://www.baeldung.com/maven-local-repository
|
|
96
|
+
mavenLocal()
|
|
97
|
+
maven {
|
|
98
|
+
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
99
|
+
url "$rootDir/../node_modules/react-native/android"
|
|
100
|
+
}
|
|
101
|
+
maven {
|
|
102
|
+
// Android JSC is installed from npm
|
|
103
|
+
url "$rootDir/../node_modules/jsc-android/dist"
|
|
104
|
+
}
|
|
105
|
+
google()
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
dependencies {
|
|
109
|
+
def debugOnly = { notation ->
|
|
110
|
+
//noinspection DependencyNotationArgument
|
|
111
|
+
debugImplementation notation
|
|
112
|
+
//noinspection DependencyNotationArgument
|
|
113
|
+
debugOptimizedImplementation notation
|
|
114
|
+
//noinspection DependencyNotationArgument
|
|
115
|
+
testImplementation notation
|
|
116
|
+
|
|
117
|
+
if (configureInRelease) {
|
|
118
|
+
//noinspection DependencyNotationArgument
|
|
119
|
+
releaseImplementation notation
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
implementation 'com.facebook.react:react-android'
|
|
124
|
+
implementation 'androidx.core:core-ktx:1.17.0'
|
|
125
|
+
|
|
126
|
+
debugOnly project(":expo-dev-menu-interface")
|
|
127
|
+
debugOnly project(":expo-manifests")
|
|
128
|
+
debugOnly project(":expo-updates-interface")
|
|
129
|
+
debugOnly project(":expo-dev-menu")
|
|
130
|
+
|
|
131
|
+
debugOnly 'commons-io:commons-io:2.6'
|
|
132
|
+
|
|
133
|
+
debugOnly 'com.squareup.okhttp3:okhttp:4.9.2'
|
|
134
|
+
debugOnly 'com.google.code.gson:gson:2.13.2'
|
|
135
|
+
|
|
136
|
+
debugOnly("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2")
|
|
137
|
+
debugOnly("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
|
|
138
|
+
debugOnly "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
|
|
139
|
+
|
|
140
|
+
def composeVersion = "1.9.0"
|
|
141
|
+
|
|
142
|
+
// it's needed by the compose compiler plugin, but it won't leak to the app module
|
|
143
|
+
releaseCompileOnly "androidx.compose.foundation:foundation-android:$composeVersion"
|
|
144
|
+
debugOnly "androidx.compose.foundation:foundation-android:$composeVersion"
|
|
145
|
+
debugOnly "androidx.compose.ui:ui:$composeVersion"
|
|
146
|
+
debugOnly "androidx.compose.ui:ui-tooling:$composeVersion"
|
|
147
|
+
debugOnly "androidx.navigation:navigation-compose:2.9.4"
|
|
148
|
+
|
|
149
|
+
def lifecycleVersion = "2.10.0"
|
|
150
|
+
debugOnly "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
|
|
151
|
+
debugOnly "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion"
|
|
152
|
+
|
|
153
|
+
debugOnly "com.google.android.gms:play-services-code-scanner:16.1.0"
|
|
154
|
+
debugOnly "com.google.mlkit:barcode-scanning:17.3.0"
|
|
155
|
+
|
|
156
|
+
debugOnly("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1")
|
|
157
|
+
|
|
158
|
+
debugOnly("com.apollographql.apollo:apollo-runtime:4.4.2")
|
|
159
|
+
|
|
160
|
+
debugOnly("com.composables:core:1.43.1")
|
|
161
|
+
|
|
162
|
+
testImplementation 'androidx.test:core:1.7.0'
|
|
163
|
+
testImplementation 'androidx.test:core-ktx:1.7.0'
|
|
164
|
+
testImplementation "com.google.truth:truth:1.4.5"
|
|
165
|
+
testImplementation 'com.squareup.okhttp3:mockwebserver:4.9.2'
|
|
166
|
+
testImplementation 'io.mockk:mockk:1.12.3'
|
|
167
|
+
testImplementation "org.robolectric:robolectric:4.16"
|
|
168
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
+
|
|
3
|
+
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
|
4
|
+
|
|
5
|
+
<application>
|
|
6
|
+
<meta-data
|
|
7
|
+
android:name="com.google.mlkit.vision.DEPENDENCIES"
|
|
8
|
+
android:value="barcode_ui"/>
|
|
9
|
+
|
|
10
|
+
<activity
|
|
11
|
+
android:name="expo.modules.devlauncher.launcher.DevLauncherActivity"
|
|
12
|
+
android:exported="true"
|
|
13
|
+
android:launchMode="singleTask"
|
|
14
|
+
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
|
|
15
|
+
|
|
16
|
+
<activity
|
|
17
|
+
android:name="expo.modules.devlauncher.compose.AuthActivity"
|
|
18
|
+
android:exported="true"
|
|
19
|
+
android:launchMode="singleTask"
|
|
20
|
+
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
|
|
21
|
+
<intent-filter>
|
|
22
|
+
<action android:name="android.intent.action.VIEW" />
|
|
23
|
+
|
|
24
|
+
<category android:name="android.intent.category.DEFAULT" />
|
|
25
|
+
<category android:name="android.intent.category.BROWSABLE" />
|
|
26
|
+
|
|
27
|
+
<data android:scheme="expo-dev-launcher" />
|
|
28
|
+
</intent-filter>
|
|
29
|
+
</activity>
|
|
30
|
+
|
|
31
|
+
<activity
|
|
32
|
+
android:name="expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity"
|
|
33
|
+
android:screenOrientation="portrait"
|
|
34
|
+
android:theme="@style/Theme.DevLauncher.ErrorActivity" />
|
|
35
|
+
</application>
|
|
36
|
+
|
|
37
|
+
<queries>
|
|
38
|
+
<package android:name="host.exp.exponent" />
|
|
39
|
+
</queries>
|
|
40
|
+
</manifest>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
query getBranchesWithCompatibleUpdate(
|
|
2
|
+
$appId: String!
|
|
3
|
+
$offset: Int!
|
|
4
|
+
$limit: Int!
|
|
5
|
+
$runtimeVersion: String!
|
|
6
|
+
$platform: AppPlatform!
|
|
7
|
+
) {
|
|
8
|
+
app {
|
|
9
|
+
byId(appId: $appId) {
|
|
10
|
+
updateBranches(offset: $offset, limit: $limit) {
|
|
11
|
+
id
|
|
12
|
+
name
|
|
13
|
+
|
|
14
|
+
compatibleUpdates: updates(
|
|
15
|
+
offset: 0
|
|
16
|
+
limit: 1
|
|
17
|
+
filter: { runtimeVersions: [$runtimeVersion], platform: $platform }
|
|
18
|
+
) {
|
|
19
|
+
id
|
|
20
|
+
message
|
|
21
|
+
runtimeVersion
|
|
22
|
+
createdAt
|
|
23
|
+
manifestPermalink
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
query getBranches(
|
|
31
|
+
$appId: String!
|
|
32
|
+
$offset: Int!
|
|
33
|
+
$limit: Int!
|
|
34
|
+
$platform: AppPlatform!
|
|
35
|
+
) {
|
|
36
|
+
app {
|
|
37
|
+
byId(appId: $appId) {
|
|
38
|
+
updateBranches(offset: $offset, limit: $limit) {
|
|
39
|
+
id
|
|
40
|
+
name
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
query getUpdatesWithFilters(
|
|
2
|
+
$appId: String!
|
|
3
|
+
$branchName: String!
|
|
4
|
+
$offset: Int!
|
|
5
|
+
$limit: Int!
|
|
6
|
+
$platform: AppPlatform!
|
|
7
|
+
) {
|
|
8
|
+
app {
|
|
9
|
+
byId(appId: $appId) {
|
|
10
|
+
updateBranchByName(name: $branchName) {
|
|
11
|
+
updates(offset: $offset, limit: $limit, filter: { platform: $platform }) {
|
|
12
|
+
id
|
|
13
|
+
message
|
|
14
|
+
runtimeVersion
|
|
15
|
+
createdAt
|
|
16
|
+
manifestPermalink
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|