1"use strict"; 2 3Object.defineProperty(exports, "__esModule", { 4 value: true 5}); 6exports.getAutoPlugins = getAutoPlugins; 7exports.getLegacyExpoPlugins = getLegacyExpoPlugins; 8exports.withIosExpoPlugins = exports.withAndroidExpoPlugins = void 0; 9exports.withLegacyExpoPlugins = withLegacyExpoPlugins; 10exports.withVersionedExpoSDKPlugins = void 0; 11 12function _configPlugins() { 13 const data = require("@expo/config-plugins"); 14 15 _configPlugins = function () { 16 return data; 17 }; 18 19 return data; 20} 21 22function _debug() { 23 const data = _interopRequireDefault(require("debug")); 24 25 _debug = function () { 26 return data; 27 }; 28 29 return data; 30} 31 32function _getAutolinkedPackages() { 33 const data = require("../getAutolinkedPackages"); 34 35 _getAutolinkedPackages = function () { 36 return data; 37 }; 38 39 return data; 40} 41 42function _withAndroidIcons() { 43 const data = require("./icons/withAndroidIcons"); 44 45 _withAndroidIcons = function () { 46 return data; 47 }; 48 49 return data; 50} 51 52function _withIosIcons() { 53 const data = require("./icons/withIosIcons"); 54 55 _withIosIcons = function () { 56 return data; 57 }; 58 59 return data; 60} 61 62function _expoAdsAdmob() { 63 const data = _interopRequireDefault(require("./unversioned/expo-ads-admob/expo-ads-admob")); 64 65 _expoAdsAdmob = function () { 66 return data; 67 }; 68 69 return data; 70} 71 72function _expoAppleAuthentication() { 73 const data = _interopRequireDefault(require("./unversioned/expo-apple-authentication")); 74 75 _expoAppleAuthentication = function () { 76 return data; 77 }; 78 79 return data; 80} 81 82function _expoBranch() { 83 const data = _interopRequireDefault(require("./unversioned/expo-branch/expo-branch")); 84 85 _expoBranch = function () { 86 return data; 87 }; 88 89 return data; 90} 91 92function _expoContacts() { 93 const data = _interopRequireDefault(require("./unversioned/expo-contacts")); 94 95 _expoContacts = function () { 96 return data; 97 }; 98 99 return data; 100} 101 102function _expoDocumentPicker() { 103 const data = _interopRequireDefault(require("./unversioned/expo-document-picker")); 104 105 _expoDocumentPicker = function () { 106 return data; 107 }; 108 109 return data; 110} 111 112function _expoFacebook() { 113 const data = _interopRequireDefault(require("./unversioned/expo-facebook/expo-facebook")); 114 115 _expoFacebook = function () { 116 return data; 117 }; 118 119 return data; 120} 121 122function _expoNavigationBar() { 123 const data = _interopRequireDefault(require("./unversioned/expo-navigation-bar/expo-navigation-bar")); 124 125 _expoNavigationBar = function () { 126 return data; 127 }; 128 129 return data; 130} 131 132function _expoNotifications() { 133 const data = _interopRequireDefault(require("./unversioned/expo-notifications/expo-notifications")); 134 135 _expoNotifications = function () { 136 return data; 137 }; 138 139 return data; 140} 141 142function _expoSplashScreen() { 143 const data = _interopRequireDefault(require("./unversioned/expo-splash-screen/expo-splash-screen")); 144 145 _expoSplashScreen = function () { 146 return data; 147 }; 148 149 return data; 150} 151 152function _expoSystemUi() { 153 const data = _interopRequireDefault(require("./unversioned/expo-system-ui/expo-system-ui")); 154 155 _expoSystemUi = function () { 156 return data; 157 }; 158 159 return data; 160} 161 162function _expoUpdates() { 163 const data = _interopRequireDefault(require("./unversioned/expo-updates")); 164 165 _expoUpdates = function () { 166 return data; 167 }; 168 169 return data; 170} 171 172function _reactNativeMaps() { 173 const data = _interopRequireDefault(require("./unversioned/react-native-maps")); 174 175 _reactNativeMaps = function () { 176 return data; 177 }; 178 179 return data; 180} 181 182function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 183 184/** 185 * These are the versioned first-party plugins with some of the future third-party plugins mixed in for legacy support. 186 */ 187const debug = (0, _debug().default)('expo:prebuild-config'); 188/** 189 * Config plugin to apply all of the custom Expo iOS config plugins we support by default. 190 * TODO: In the future most of this should go into versioned packages like expo-facebook, expo-updates, etc... 191 */ 192 193const withIosExpoPlugins = (config, { 194 bundleIdentifier 195}) => { 196 // Set the bundle ID ahead of time. 197 if (!config.ios) config.ios = {}; 198 config.ios.bundleIdentifier = bundleIdentifier; 199 return (0, _configPlugins().withPlugins)(config, [[_configPlugins().IOSConfig.BundleIdentifier.withBundleIdentifier, { 200 bundleIdentifier 201 }], _configPlugins().IOSConfig.Swift.withSwiftBridgingHeader, _configPlugins().IOSConfig.Swift.withNoopSwiftFile, _configPlugins().IOSConfig.Google.withGoogle, _configPlugins().IOSConfig.Name.withDisplayName, _configPlugins().IOSConfig.Name.withProductName, _configPlugins().IOSConfig.Orientation.withOrientation, _configPlugins().IOSConfig.RequiresFullScreen.withRequiresFullScreen, _configPlugins().IOSConfig.Scheme.withScheme, _configPlugins().IOSConfig.UsesNonExemptEncryption.withUsesNonExemptEncryption, _configPlugins().IOSConfig.Version.withBuildNumber, _configPlugins().IOSConfig.Version.withVersion, _configPlugins().IOSConfig.Google.withGoogleServicesFile, _configPlugins().IOSConfig.BuildProperties.withJsEnginePodfileProps, // Entitlements 202 _configPlugins().IOSConfig.Entitlements.withAssociatedDomains, // XcodeProject 203 _configPlugins().IOSConfig.DeviceFamily.withDeviceFamily, _configPlugins().IOSConfig.Bitcode.withBitcode, _configPlugins().IOSConfig.Locales.withLocales, // Dangerous 204 _withIosIcons().withIosIcons]); 205}; 206/** 207 * Config plugin to apply all of the custom Expo Android config plugins we support by default. 208 * TODO: In the future most of this should go into versioned packages like expo-facebook, expo-updates, etc... 209 */ 210 211 212exports.withIosExpoPlugins = withIosExpoPlugins; 213 214const withAndroidExpoPlugins = (config, props) => { 215 // Set the package name ahead of time. 216 if (!config.android) config.android = {}; 217 config.android.package = props.package; 218 return (0, _configPlugins().withPlugins)(config, [// gradle.properties 219 _configPlugins().AndroidConfig.BuildProperties.withJsEngineGradleProps, // settings.gradle 220 _configPlugins().AndroidConfig.Name.withNameSettingsGradle, // project build.gradle 221 _configPlugins().AndroidConfig.GoogleServices.withClassPath, // app/build.gradle 222 _configPlugins().AndroidConfig.GoogleServices.withApplyPlugin, _configPlugins().AndroidConfig.Package.withPackageGradle, _configPlugins().AndroidConfig.Version.withVersion, // AndroidManifest.xml 223 _configPlugins().AndroidConfig.Package.withPackageManifest, _configPlugins().AndroidConfig.AllowBackup.withAllowBackup, _configPlugins().AndroidConfig.WindowSoftInputMode.withWindowSoftInputMode, // Note: The withAndroidIntentFilters plugin must appear before the withScheme 224 // plugin or withScheme will override the output of withAndroidIntentFilters. 225 _configPlugins().AndroidConfig.IntentFilters.withAndroidIntentFilters, _configPlugins().AndroidConfig.Scheme.withScheme, _configPlugins().AndroidConfig.Orientation.withOrientation, _configPlugins().AndroidConfig.Permissions.withInternalBlockedPermissions, _configPlugins().AndroidConfig.Permissions.withPermissions, // strings.xml 226 _configPlugins().AndroidConfig.Name.withName, // Dangerous -- these plugins run in reverse order. 227 _configPlugins().AndroidConfig.GoogleServices.withGoogleServicesFile, // Modify colors.xml and styles.xml 228 _configPlugins().AndroidConfig.StatusBar.withStatusBar, _configPlugins().AndroidConfig.PrimaryColor.withPrimaryColor, _withAndroidIcons().withAndroidIcons, // If we renamed the package, we should also move it around and rename it in source files 229 // Added last to ensure this plugin runs first. Out of tree solutions will mistakenly resolve the package incorrectly otherwise. 230 _configPlugins().AndroidConfig.Package.withPackageRefactor]); 231}; // Must keep in sync with `withVersionedExpoSDKPlugins` 232 233 234exports.withAndroidExpoPlugins = withAndroidExpoPlugins; 235const versionedExpoSDKPackages = ['react-native-maps', 'expo-ads-admob', 'expo-apple-authentication', 'expo-contacts', 'expo-notifications', 'expo-updates', 'expo-branch', 'expo-navigation-bar', 'expo-document-picker', 'expo-facebook', 'expo-splash-screen', 'expo-system-ui']; 236 237const withVersionedExpoSDKPlugins = (config, { 238 expoUsername 239}) => { 240 return (0, _configPlugins().withPlugins)(config, [_reactNativeMaps().default, _expoAdsAdmob().default, _expoAppleAuthentication().default, _expoContacts().default, _expoNotifications().default, [_expoUpdates().default, { 241 expoUsername 242 }], _expoBranch().default, _expoDocumentPicker().default, _expoFacebook().default, // System UI must come before splash screen as they overlap 243 // and splash screen will warn about conflicting rules. 244 _expoSystemUi().default, _expoSplashScreen().default, _expoNavigationBar().default]); 245}; 246 247exports.withVersionedExpoSDKPlugins = withVersionedExpoSDKPlugins; 248 249function getAutoPlugins() { 250 return versionedExpoSDKPackages.concat(legacyExpoPlugins).concat(expoManagedVersionedPlugins); 251} 252 253function getLegacyExpoPlugins() { 254 return legacyExpoPlugins; 255} // Expo managed packages that require extra update. 256// These get applied automatically to create parity with expo build in eas build. 257 258 259const legacyExpoPlugins = ['expo-app-auth', 'expo-av', 'expo-background-fetch', 'expo-barcode-scanner', 'expo-brightness', 'expo-calendar', 'expo-camera', 'expo-cellular', 'expo-dev-menu', 'expo-dev-launcher', 'expo-dev-client', 'expo-image-picker', 'expo-file-system', 'expo-ads-facebook', 'expo-location', 'expo-media-library', 'expo-screen-orientation', 'expo-sensors', 'expo-task-manager', 'expo-local-authentication']; // Plugins that need to be automatically applied, but also get applied by expo-cli if the versioned plugin isn't available. 260// These are split up because the user doesn't need to be prompted to setup these packages. 261 262const expoManagedVersionedPlugins = ['expo-firebase-analytics', 'expo-firebase-core', 'expo-google-sign-in']; 263 264const withOptionalLegacyPlugins = (config, plugins) => { 265 return plugins.reduce((prev, plugin) => { 266 if ((0, _getAutolinkedPackages().shouldSkipAutoPlugin)(config, plugin)) { 267 debug('Skipping unlinked auto plugin:', plugin); 268 return prev; 269 } 270 271 return (0, _configPlugins().withStaticPlugin)(prev, { 272 // hide errors 273 _isLegacyPlugin: true, 274 plugin, 275 // If a plugin doesn't exist, do nothing. 276 fallback: config => config 277 }); 278 }, config); 279}; 280 281function withLegacyExpoPlugins(config) { 282 return withOptionalLegacyPlugins(config, [...new Set(expoManagedVersionedPlugins.concat(legacyExpoPlugins))]); 283} 284//# sourceMappingURL=withDefaultPlugins.js.map