1082815dcSEvan Bacon"use strict"; 2082815dcSEvan Bacon 3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4082815dcSEvan Bacon value: true 5082815dcSEvan Bacon}); 6082815dcSEvan Baconexports.createEntitlementsPlugin = createEntitlementsPlugin; 7082815dcSEvan Baconexports.createInfoPlistPlugin = createInfoPlistPlugin; 8082815dcSEvan Baconexports.createInfoPlistPluginWithPropertyGuard = createInfoPlistPluginWithPropertyGuard; 9082815dcSEvan Baconexports.withXcodeProject = exports.withPodfileProperties = exports.withInfoPlist = exports.withExpoPlist = exports.withEntitlementsPlist = exports.withAppDelegate = void 0; 10*8a424bebSJames Idefunction _withMod() { 11*8a424bebSJames Ide const data = require("./withMod"); 12*8a424bebSJames Ide _withMod = function () { 13*8a424bebSJames Ide return data; 14*8a424bebSJames Ide }; 15*8a424bebSJames Ide return data; 16*8a424bebSJames Ide} 17082815dcSEvan Baconfunction _obj() { 18082815dcSEvan Bacon const data = require("../utils/obj"); 19082815dcSEvan Bacon _obj = function () { 20082815dcSEvan Bacon return data; 21082815dcSEvan Bacon }; 22082815dcSEvan Bacon return data; 23082815dcSEvan Bacon} 24082815dcSEvan Baconfunction _warnings() { 25082815dcSEvan Bacon const data = require("../utils/warnings"); 26082815dcSEvan Bacon _warnings = function () { 27082815dcSEvan Bacon return data; 28082815dcSEvan Bacon }; 29082815dcSEvan Bacon return data; 30082815dcSEvan Bacon} 31082815dcSEvan Bacon/** 32082815dcSEvan Bacon * Helper method for creating mods from existing config functions. 33082815dcSEvan Bacon * 34082815dcSEvan Bacon * @param action 35082815dcSEvan Bacon */ 36082815dcSEvan Baconfunction createInfoPlistPlugin(action, name) { 37082815dcSEvan Bacon const withUnknown = config => withInfoPlist(config, async config => { 38082815dcSEvan Bacon config.modResults = await action(config, config.modResults); 39082815dcSEvan Bacon return config; 40082815dcSEvan Bacon }); 41082815dcSEvan Bacon if (name) { 42082815dcSEvan Bacon Object.defineProperty(withUnknown, 'name', { 43082815dcSEvan Bacon value: name 44082815dcSEvan Bacon }); 45082815dcSEvan Bacon } 46082815dcSEvan Bacon return withUnknown; 47082815dcSEvan Bacon} 48082815dcSEvan Baconfunction createInfoPlistPluginWithPropertyGuard(action, settings, name) { 49082815dcSEvan Bacon const withUnknown = config => withInfoPlist(config, async config => { 50082815dcSEvan Bacon var _config$modRawConfig$, _config$modRawConfig$2; 51ee216927STomasz Sapeta const existingProperty = settings.expoPropertyGetter ? settings.expoPropertyGetter(config) : (0, _obj().get)(config, settings.expoConfigProperty); 52ee216927STomasz Sapeta // If the user explicitly sets a value in the infoPlist, we should respect that. 53082815dcSEvan Bacon if (((_config$modRawConfig$ = config.modRawConfig.ios) === null || _config$modRawConfig$ === void 0 ? void 0 : (_config$modRawConfig$2 = _config$modRawConfig$.infoPlist) === null || _config$modRawConfig$2 === void 0 ? void 0 : _config$modRawConfig$2[settings.infoPlistProperty]) === undefined) { 54082815dcSEvan Bacon config.modResults = await action(config, config.modResults); 55082815dcSEvan Bacon } else if (existingProperty !== undefined) { 56082815dcSEvan Bacon // Only warn if there is a conflict. 57082815dcSEvan Bacon (0, _warnings().addWarningIOS)(settings.expoConfigProperty, `"ios.infoPlist.${settings.infoPlistProperty}" is set in the config. Ignoring abstract property "${settings.expoConfigProperty}": ${existingProperty}`); 58082815dcSEvan Bacon } 59082815dcSEvan Bacon return config; 60082815dcSEvan Bacon }); 61082815dcSEvan Bacon if (name) { 62082815dcSEvan Bacon Object.defineProperty(withUnknown, 'name', { 63082815dcSEvan Bacon value: name 64082815dcSEvan Bacon }); 65082815dcSEvan Bacon } 66082815dcSEvan Bacon return withUnknown; 67082815dcSEvan Bacon} 68082815dcSEvan Bacon/** 69082815dcSEvan Bacon * Helper method for creating mods from existing config functions. 70082815dcSEvan Bacon * 71082815dcSEvan Bacon * @param action 72082815dcSEvan Bacon */ 73082815dcSEvan Baconfunction createEntitlementsPlugin(action, name) { 74082815dcSEvan Bacon const withUnknown = config => withEntitlementsPlist(config, async config => { 75082815dcSEvan Bacon config.modResults = await action(config, config.modResults); 76082815dcSEvan Bacon return config; 77082815dcSEvan Bacon }); 78082815dcSEvan Bacon if (name) { 79082815dcSEvan Bacon Object.defineProperty(withUnknown, 'name', { 80082815dcSEvan Bacon value: name 81082815dcSEvan Bacon }); 82082815dcSEvan Bacon } 83082815dcSEvan Bacon return withUnknown; 84082815dcSEvan Bacon} 85ee216927STomasz Sapeta 86082815dcSEvan Bacon/** 87082815dcSEvan Bacon * Provides the AppDelegate file for modification. 88082815dcSEvan Bacon * 89082815dcSEvan Bacon * @param config 90082815dcSEvan Bacon * @param action 91082815dcSEvan Bacon */ 92082815dcSEvan Baconconst withAppDelegate = (config, action) => { 93082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 94082815dcSEvan Bacon platform: 'ios', 95082815dcSEvan Bacon mod: 'appDelegate', 96082815dcSEvan Bacon action 97082815dcSEvan Bacon }); 98082815dcSEvan Bacon}; 99ee216927STomasz Sapeta 100082815dcSEvan Bacon/** 101082815dcSEvan Bacon * Provides the Info.plist file for modification. 102082815dcSEvan Bacon * Keeps the config's expo.ios.infoPlist object in sync with the data. 103082815dcSEvan Bacon * 104082815dcSEvan Bacon * @param config 105082815dcSEvan Bacon * @param action 106082815dcSEvan Bacon */ 107082815dcSEvan Baconexports.withAppDelegate = withAppDelegate; 108082815dcSEvan Baconconst withInfoPlist = (config, action) => { 109082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 110082815dcSEvan Bacon platform: 'ios', 111082815dcSEvan Bacon mod: 'infoPlist', 112082815dcSEvan Bacon async action(config) { 113082815dcSEvan Bacon config = await action(config); 114082815dcSEvan Bacon if (!config.ios) { 115082815dcSEvan Bacon config.ios = {}; 116082815dcSEvan Bacon } 117082815dcSEvan Bacon config.ios.infoPlist = config.modResults; 118082815dcSEvan Bacon return config; 119082815dcSEvan Bacon } 120082815dcSEvan Bacon }); 121082815dcSEvan Bacon}; 122ee216927STomasz Sapeta 123082815dcSEvan Bacon/** 124082815dcSEvan Bacon * Provides the main .entitlements file for modification. 125082815dcSEvan Bacon * Keeps the config's expo.ios.entitlements object in sync with the data. 126082815dcSEvan Bacon * 127082815dcSEvan Bacon * @param config 128082815dcSEvan Bacon * @param action 129082815dcSEvan Bacon */ 130082815dcSEvan Baconexports.withInfoPlist = withInfoPlist; 131082815dcSEvan Baconconst withEntitlementsPlist = (config, action) => { 132082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 133082815dcSEvan Bacon platform: 'ios', 134082815dcSEvan Bacon mod: 'entitlements', 135082815dcSEvan Bacon async action(config) { 136082815dcSEvan Bacon config = await action(config); 137082815dcSEvan Bacon if (!config.ios) { 138082815dcSEvan Bacon config.ios = {}; 139082815dcSEvan Bacon } 140082815dcSEvan Bacon config.ios.entitlements = config.modResults; 141082815dcSEvan Bacon return config; 142082815dcSEvan Bacon } 143082815dcSEvan Bacon }); 144082815dcSEvan Bacon}; 145ee216927STomasz Sapeta 146082815dcSEvan Bacon/** 147082815dcSEvan Bacon * Provides the Expo.plist for modification. 148082815dcSEvan Bacon * 149082815dcSEvan Bacon * @param config 150082815dcSEvan Bacon * @param action 151082815dcSEvan Bacon */ 152082815dcSEvan Baconexports.withEntitlementsPlist = withEntitlementsPlist; 153082815dcSEvan Baconconst withExpoPlist = (config, action) => { 154082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 155082815dcSEvan Bacon platform: 'ios', 156082815dcSEvan Bacon mod: 'expoPlist', 157082815dcSEvan Bacon action 158082815dcSEvan Bacon }); 159082815dcSEvan Bacon}; 160ee216927STomasz Sapeta 161082815dcSEvan Bacon/** 162082815dcSEvan Bacon * Provides the main .xcodeproj for modification. 163082815dcSEvan Bacon * 164082815dcSEvan Bacon * @param config 165082815dcSEvan Bacon * @param action 166082815dcSEvan Bacon */ 167082815dcSEvan Baconexports.withExpoPlist = withExpoPlist; 168082815dcSEvan Baconconst withXcodeProject = (config, action) => { 169082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 170082815dcSEvan Bacon platform: 'ios', 171082815dcSEvan Bacon mod: 'xcodeproj', 172082815dcSEvan Bacon action 173082815dcSEvan Bacon }); 174082815dcSEvan Bacon}; 175ee216927STomasz Sapeta 176082815dcSEvan Bacon/** 177082815dcSEvan Bacon * Provides the Podfile.properties.json for modification. 178082815dcSEvan Bacon * 179082815dcSEvan Bacon * @param config 180082815dcSEvan Bacon * @param action 181082815dcSEvan Bacon */ 182082815dcSEvan Baconexports.withXcodeProject = withXcodeProject; 183082815dcSEvan Baconconst withPodfileProperties = (config, action) => { 184082815dcSEvan Bacon return (0, _withMod().withMod)(config, { 185082815dcSEvan Bacon platform: 'ios', 186082815dcSEvan Bacon mod: 'podfileProperties', 187082815dcSEvan Bacon action 188082815dcSEvan Bacon }); 189082815dcSEvan Bacon}; 190082815dcSEvan Baconexports.withPodfileProperties = withPodfileProperties; 191082815dcSEvan Bacon//# sourceMappingURL=ios-plugins.js.map