1082815dcSEvan Bacon"use strict"; 2082815dcSEvan Bacon 3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", { 4082815dcSEvan Bacon value: true 5082815dcSEvan Bacon}); 6082815dcSEvan Baconexports.getIosModFileProviders = getIosModFileProviders; 7082815dcSEvan Baconexports.withIosBaseMods = withIosBaseMods; 8082815dcSEvan Baconfunction _jsonFile() { 9082815dcSEvan Bacon const data = _interopRequireDefault(require("@expo/json-file")); 10082815dcSEvan Bacon _jsonFile = function () { 11082815dcSEvan Bacon return data; 12082815dcSEvan Bacon }; 13082815dcSEvan Bacon return data; 14082815dcSEvan Bacon} 15082815dcSEvan Baconfunction _plist() { 16082815dcSEvan Bacon const data = _interopRequireDefault(require("@expo/plist")); 17082815dcSEvan Bacon _plist = function () { 18082815dcSEvan Bacon return data; 19082815dcSEvan Bacon }; 20082815dcSEvan Bacon return data; 21082815dcSEvan Bacon} 22082815dcSEvan Baconfunction _assert() { 23082815dcSEvan Bacon const data = _interopRequireDefault(require("assert")); 24082815dcSEvan Bacon _assert = function () { 25082815dcSEvan Bacon return data; 26082815dcSEvan Bacon }; 27082815dcSEvan Bacon return data; 28082815dcSEvan Bacon} 29082815dcSEvan Baconfunction _fs() { 30082815dcSEvan Bacon const data = _interopRequireWildcard(require("fs")); 31082815dcSEvan Bacon _fs = function () { 32082815dcSEvan Bacon return data; 33082815dcSEvan Bacon }; 34082815dcSEvan Bacon return data; 35082815dcSEvan Bacon} 36082815dcSEvan Baconfunction _path() { 37082815dcSEvan Bacon const data = _interopRequireDefault(require("path")); 38082815dcSEvan Bacon _path = function () { 39082815dcSEvan Bacon return data; 40082815dcSEvan Bacon }; 41082815dcSEvan Bacon return data; 42082815dcSEvan Bacon} 43082815dcSEvan Baconfunction _xcode() { 44082815dcSEvan Bacon const data = _interopRequireDefault(require("xcode")); 45082815dcSEvan Bacon _xcode = function () { 46082815dcSEvan Bacon return data; 47082815dcSEvan Bacon }; 48082815dcSEvan Bacon return data; 49082815dcSEvan Bacon} 50*8a424bebSJames Idefunction _createBaseMod() { 51*8a424bebSJames Ide const data = require("./createBaseMod"); 52*8a424bebSJames Ide _createBaseMod = function () { 53*8a424bebSJames Ide return data; 54*8a424bebSJames Ide }; 55*8a424bebSJames Ide return data; 56*8a424bebSJames Ide} 57082815dcSEvan Baconfunction _ios() { 58082815dcSEvan Bacon const data = require("../ios"); 59082815dcSEvan Bacon _ios = function () { 60082815dcSEvan Bacon return data; 61082815dcSEvan Bacon }; 62082815dcSEvan Bacon return data; 63082815dcSEvan Bacon} 64082815dcSEvan Baconfunction _Entitlements() { 65082815dcSEvan Bacon const data = require("../ios/Entitlements"); 66082815dcSEvan Bacon _Entitlements = function () { 67082815dcSEvan Bacon return data; 68082815dcSEvan Bacon }; 69082815dcSEvan Bacon return data; 70082815dcSEvan Bacon} 71082815dcSEvan Baconfunction _Xcodeproj() { 72082815dcSEvan Bacon const data = require("../ios/utils/Xcodeproj"); 73082815dcSEvan Bacon _Xcodeproj = function () { 74082815dcSEvan Bacon return data; 75082815dcSEvan Bacon }; 76082815dcSEvan Bacon return data; 77082815dcSEvan Bacon} 78082815dcSEvan Baconfunction _getInfoPlistPath() { 79082815dcSEvan Bacon const data = require("../ios/utils/getInfoPlistPath"); 80082815dcSEvan Bacon _getInfoPlistPath = function () { 81082815dcSEvan Bacon return data; 82082815dcSEvan Bacon }; 83082815dcSEvan Bacon return data; 84082815dcSEvan Bacon} 85082815dcSEvan Baconfunction _modules() { 86082815dcSEvan Bacon const data = require("../utils/modules"); 87082815dcSEvan Bacon _modules = function () { 88082815dcSEvan Bacon return data; 89082815dcSEvan Bacon }; 90082815dcSEvan Bacon return data; 91082815dcSEvan Bacon} 92082815dcSEvan Baconfunction _sortObject() { 93082815dcSEvan Bacon const data = require("../utils/sortObject"); 94082815dcSEvan Bacon _sortObject = function () { 95082815dcSEvan Bacon return data; 96082815dcSEvan Bacon }; 97082815dcSEvan Bacon return data; 98082815dcSEvan Bacon} 99082815dcSEvan Baconfunction _warnings() { 100082815dcSEvan Bacon const data = require("../utils/warnings"); 101082815dcSEvan Bacon _warnings = function () { 102082815dcSEvan Bacon return data; 103082815dcSEvan Bacon }; 104082815dcSEvan Bacon return data; 105082815dcSEvan Bacon} 106082815dcSEvan Baconfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } 107082815dcSEvan Baconfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } 108082815dcSEvan Baconfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 109082815dcSEvan Baconconst { 110082815dcSEvan Bacon readFile, 111082815dcSEvan Bacon writeFile 112082815dcSEvan Bacon} = _fs().promises; 113082815dcSEvan Baconfunction getEntitlementsPlistTemplate() { 114082815dcSEvan Bacon // TODO: Fetch the versioned template file if possible 115082815dcSEvan Bacon return {}; 116082815dcSEvan Bacon} 117082815dcSEvan Baconfunction getInfoPlistTemplate() { 118082815dcSEvan Bacon // TODO: Fetch the versioned template file if possible 119082815dcSEvan Bacon return { 120082815dcSEvan Bacon CFBundleDevelopmentRegion: '$(DEVELOPMENT_LANGUAGE)', 121082815dcSEvan Bacon CFBundleExecutable: '$(EXECUTABLE_NAME)', 122082815dcSEvan Bacon CFBundleIdentifier: '$(PRODUCT_BUNDLE_IDENTIFIER)', 123082815dcSEvan Bacon CFBundleName: '$(PRODUCT_NAME)', 124082815dcSEvan Bacon CFBundlePackageType: '$(PRODUCT_BUNDLE_PACKAGE_TYPE)', 125082815dcSEvan Bacon CFBundleInfoDictionaryVersion: '6.0', 126082815dcSEvan Bacon CFBundleSignature: '????', 127082815dcSEvan Bacon LSRequiresIPhoneOS: true, 128082815dcSEvan Bacon NSAppTransportSecurity: { 129082815dcSEvan Bacon NSAllowsArbitraryLoads: true, 130082815dcSEvan Bacon NSExceptionDomains: { 131082815dcSEvan Bacon localhost: { 132082815dcSEvan Bacon NSExceptionAllowsInsecureHTTPLoads: true 133082815dcSEvan Bacon } 134082815dcSEvan Bacon } 135082815dcSEvan Bacon }, 136082815dcSEvan Bacon UILaunchStoryboardName: 'SplashScreen', 137082815dcSEvan Bacon UIRequiredDeviceCapabilities: ['armv7'], 138082815dcSEvan Bacon UIViewControllerBasedStatusBarAppearance: false, 139e62686cbSEvan Bacon UIStatusBarStyle: 'UIStatusBarStyleDefault', 140e62686cbSEvan Bacon CADisableMinimumFrameDurationOnPhone: true 141082815dcSEvan Bacon }; 142082815dcSEvan Bacon} 143082815dcSEvan Baconconst defaultProviders = { 144082815dcSEvan Bacon dangerous: (0, _createBaseMod().provider)({ 145082815dcSEvan Bacon getFilePath() { 146082815dcSEvan Bacon return ''; 147082815dcSEvan Bacon }, 148082815dcSEvan Bacon async read() { 149082815dcSEvan Bacon return {}; 150082815dcSEvan Bacon }, 151082815dcSEvan Bacon async write() {} 152082815dcSEvan Bacon }), 153082815dcSEvan Bacon // Append a rule to supply AppDelegate data to mods on `mods.ios.appDelegate` 154082815dcSEvan Bacon appDelegate: (0, _createBaseMod().provider)({ 155082815dcSEvan Bacon getFilePath({ 156082815dcSEvan Bacon modRequest: { 157082815dcSEvan Bacon projectRoot 158082815dcSEvan Bacon } 159082815dcSEvan Bacon }) { 1602ddae922SKudo Chien // TODO: Get application AppDelegate file from pbxproj. 161082815dcSEvan Bacon return _ios().Paths.getAppDelegateFilePath(projectRoot); 162082815dcSEvan Bacon }, 163082815dcSEvan Bacon async read(filePath) { 164082815dcSEvan Bacon return _ios().Paths.getFileInfo(filePath); 165082815dcSEvan Bacon }, 166082815dcSEvan Bacon async write(filePath, { 167082815dcSEvan Bacon modResults: { 168082815dcSEvan Bacon contents 169082815dcSEvan Bacon } 170082815dcSEvan Bacon }) { 171082815dcSEvan Bacon await writeFile(filePath, contents); 172082815dcSEvan Bacon } 173082815dcSEvan Bacon }), 174082815dcSEvan Bacon // Append a rule to supply Expo.plist data to mods on `mods.ios.expoPlist` 175082815dcSEvan Bacon expoPlist: (0, _createBaseMod().provider)({ 176082815dcSEvan Bacon isIntrospective: true, 177082815dcSEvan Bacon getFilePath({ 178082815dcSEvan Bacon modRequest: { 179082815dcSEvan Bacon platformProjectRoot, 180082815dcSEvan Bacon projectName 181082815dcSEvan Bacon } 182082815dcSEvan Bacon }) { 183082815dcSEvan Bacon const supportingDirectory = _path().default.join(platformProjectRoot, projectName, 'Supporting'); 184082815dcSEvan Bacon return _path().default.resolve(supportingDirectory, 'Expo.plist'); 185082815dcSEvan Bacon }, 186082815dcSEvan Bacon async read(filePath, { 187082815dcSEvan Bacon modRequest: { 188082815dcSEvan Bacon introspect 189082815dcSEvan Bacon } 190082815dcSEvan Bacon }) { 191082815dcSEvan Bacon try { 192082815dcSEvan Bacon return _plist().default.parse(await readFile(filePath, 'utf8')); 193082815dcSEvan Bacon } catch (error) { 194082815dcSEvan Bacon if (introspect) { 195082815dcSEvan Bacon return {}; 196082815dcSEvan Bacon } 197082815dcSEvan Bacon throw error; 198082815dcSEvan Bacon } 199082815dcSEvan Bacon }, 200082815dcSEvan Bacon async write(filePath, { 201082815dcSEvan Bacon modResults, 202082815dcSEvan Bacon modRequest: { 203082815dcSEvan Bacon introspect 204082815dcSEvan Bacon } 205082815dcSEvan Bacon }) { 206082815dcSEvan Bacon if (introspect) { 207082815dcSEvan Bacon return; 208082815dcSEvan Bacon } 209082815dcSEvan Bacon await writeFile(filePath, _plist().default.build((0, _sortObject().sortObject)(modResults))); 210082815dcSEvan Bacon } 211082815dcSEvan Bacon }), 212082815dcSEvan Bacon // Append a rule to supply .xcodeproj data to mods on `mods.ios.xcodeproj` 213082815dcSEvan Bacon xcodeproj: (0, _createBaseMod().provider)({ 214082815dcSEvan Bacon getFilePath({ 215082815dcSEvan Bacon modRequest: { 216082815dcSEvan Bacon projectRoot 217082815dcSEvan Bacon } 218082815dcSEvan Bacon }) { 219082815dcSEvan Bacon return _ios().Paths.getPBXProjectPath(projectRoot); 220082815dcSEvan Bacon }, 221082815dcSEvan Bacon async read(filePath) { 222082815dcSEvan Bacon const project = _xcode().default.project(filePath); 223082815dcSEvan Bacon project.parseSync(); 224082815dcSEvan Bacon return project; 225082815dcSEvan Bacon }, 226082815dcSEvan Bacon async write(filePath, { 227082815dcSEvan Bacon modResults 228082815dcSEvan Bacon }) { 229082815dcSEvan Bacon await writeFile(filePath, modResults.writeSync()); 230082815dcSEvan Bacon } 231082815dcSEvan Bacon }), 232082815dcSEvan Bacon // Append a rule to supply Info.plist data to mods on `mods.ios.infoPlist` 233082815dcSEvan Bacon infoPlist: (0, _createBaseMod().provider)({ 234082815dcSEvan Bacon isIntrospective: true, 235082815dcSEvan Bacon async getFilePath(config) { 236082815dcSEvan Bacon let project = null; 237082815dcSEvan Bacon try { 238082815dcSEvan Bacon project = (0, _Xcodeproj().getPbxproj)(config.modRequest.projectRoot); 239ee216927STomasz Sapeta } catch { 240ee216927STomasz Sapeta // noop 241ee216927STomasz Sapeta } 242ee216927STomasz Sapeta 243ee216927STomasz Sapeta // Only check / warn if a project actually exists, this'll provide 244082815dcSEvan Bacon // more accurate warning messages for users in managed projects. 245082815dcSEvan Bacon if (project) { 246082815dcSEvan Bacon const infoPlistBuildProperty = (0, _getInfoPlistPath().getInfoPlistPathFromPbxproj)(project); 247082815dcSEvan Bacon if (infoPlistBuildProperty) { 248082815dcSEvan Bacon //: [root]/myapp/ios/MyApp/Info.plist 249ee216927STomasz Sapeta const infoPlistPath = _path().default.join( 250ee216927STomasz Sapeta //: myapp/ios 251ee216927STomasz Sapeta config.modRequest.platformProjectRoot, 252ee216927STomasz Sapeta //: MyApp/Info.plist 253082815dcSEvan Bacon infoPlistBuildProperty); 254082815dcSEvan Bacon if ((0, _modules().fileExists)(infoPlistPath)) { 255082815dcSEvan Bacon return infoPlistPath; 256082815dcSEvan Bacon } 257082815dcSEvan Bacon (0, _warnings().addWarningIOS)('mods.ios.infoPlist', `Info.plist file linked to Xcode project does not exist: ${infoPlistPath}`); 258082815dcSEvan Bacon } else { 259082815dcSEvan Bacon (0, _warnings().addWarningIOS)('mods.ios.infoPlist', 'Failed to find Info.plist linked to Xcode project.'); 260082815dcSEvan Bacon } 261082815dcSEvan Bacon } 262082815dcSEvan Bacon try { 263082815dcSEvan Bacon // Fallback on glob... 264082815dcSEvan Bacon return await _ios().Paths.getInfoPlistPath(config.modRequest.projectRoot); 265082815dcSEvan Bacon } catch (error) { 266082815dcSEvan Bacon if (config.modRequest.introspect) { 267082815dcSEvan Bacon // fallback to an empty string in introspection mode. 268082815dcSEvan Bacon return ''; 269082815dcSEvan Bacon } 270082815dcSEvan Bacon throw error; 271082815dcSEvan Bacon } 272082815dcSEvan Bacon }, 273082815dcSEvan Bacon async read(filePath, config) { 274082815dcSEvan Bacon // Apply all of the Info.plist values to the expo.ios.infoPlist object 275082815dcSEvan Bacon // TODO: Remove this in favor of just overwriting the Info.plist with the Expo object. This will enable people to actually remove values. 276082815dcSEvan Bacon if (!config.ios) config.ios = {}; 277082815dcSEvan Bacon if (!config.ios.infoPlist) config.ios.infoPlist = {}; 278082815dcSEvan Bacon let modResults; 279082815dcSEvan Bacon try { 280082815dcSEvan Bacon const contents = await readFile(filePath, 'utf8'); 281082815dcSEvan Bacon (0, _assert().default)(contents, 'Info.plist is empty'); 282082815dcSEvan Bacon modResults = _plist().default.parse(contents); 283082815dcSEvan Bacon } catch (error) { 284082815dcSEvan Bacon // Throw errors in introspection mode. 285082815dcSEvan Bacon if (!config.modRequest.introspect) { 286082815dcSEvan Bacon throw error; 287ee216927STomasz Sapeta } 288ee216927STomasz Sapeta // Fallback to using the infoPlist object from the Expo config. 289082815dcSEvan Bacon modResults = getInfoPlistTemplate(); 290082815dcSEvan Bacon } 291ee216927STomasz Sapeta config.ios.infoPlist = { 292ee216927STomasz Sapeta ...(modResults || {}), 293082815dcSEvan Bacon ...config.ios.infoPlist 294082815dcSEvan Bacon }; 295082815dcSEvan Bacon return config.ios.infoPlist; 296082815dcSEvan Bacon }, 297082815dcSEvan Bacon async write(filePath, config) { 298082815dcSEvan Bacon // Update the contents of the static infoPlist object 299082815dcSEvan Bacon if (!config.ios) { 300082815dcSEvan Bacon config.ios = {}; 301082815dcSEvan Bacon } 302ee216927STomasz Sapeta config.ios.infoPlist = config.modResults; 303082815dcSEvan Bacon 304ee216927STomasz Sapeta // Return early without writing, in introspection mode. 305082815dcSEvan Bacon if (config.modRequest.introspect) { 306082815dcSEvan Bacon return; 307082815dcSEvan Bacon } 308082815dcSEvan Bacon await writeFile(filePath, _plist().default.build((0, _sortObject().sortObject)(config.modResults))); 309082815dcSEvan Bacon } 310082815dcSEvan Bacon }), 311082815dcSEvan Bacon // Append a rule to supply .entitlements data to mods on `mods.ios.entitlements` 312082815dcSEvan Bacon entitlements: (0, _createBaseMod().provider)({ 313082815dcSEvan Bacon isIntrospective: true, 314082815dcSEvan Bacon async getFilePath(config) { 315082815dcSEvan Bacon try { 316082815dcSEvan Bacon var _Entitlements$getEnti; 317082815dcSEvan Bacon (0, _Entitlements().ensureApplicationTargetEntitlementsFileConfigured)(config.modRequest.projectRoot); 318082815dcSEvan Bacon return (_Entitlements$getEnti = _ios().Entitlements.getEntitlementsPath(config.modRequest.projectRoot)) !== null && _Entitlements$getEnti !== void 0 ? _Entitlements$getEnti : ''; 319082815dcSEvan Bacon } catch (error) { 320082815dcSEvan Bacon if (config.modRequest.introspect) { 321082815dcSEvan Bacon // fallback to an empty string in introspection mode. 322082815dcSEvan Bacon return ''; 323082815dcSEvan Bacon } 324082815dcSEvan Bacon throw error; 325082815dcSEvan Bacon } 326082815dcSEvan Bacon }, 327082815dcSEvan Bacon async read(filePath, config) { 328082815dcSEvan Bacon let modResults; 329082815dcSEvan Bacon try { 33042d6b312SCedric van Putten if (!config.modRequest.ignoreExistingNativeFiles && _fs().default.existsSync(filePath)) { 331082815dcSEvan Bacon const contents = await readFile(filePath, 'utf8'); 332082815dcSEvan Bacon (0, _assert().default)(contents, 'Entitlements plist is empty'); 333082815dcSEvan Bacon modResults = _plist().default.parse(contents); 334082815dcSEvan Bacon } else { 335082815dcSEvan Bacon modResults = getEntitlementsPlistTemplate(); 336082815dcSEvan Bacon } 337082815dcSEvan Bacon } catch (error) { 338082815dcSEvan Bacon // Throw errors in introspection mode. 339082815dcSEvan Bacon if (!config.modRequest.introspect) { 340082815dcSEvan Bacon throw error; 341ee216927STomasz Sapeta } 342ee216927STomasz Sapeta // Fallback to using the template file. 343082815dcSEvan Bacon modResults = getEntitlementsPlistTemplate(); 344ee216927STomasz Sapeta } 345ee216927STomasz Sapeta 346ee216927STomasz Sapeta // Apply all of the .entitlements values to the expo.ios.entitlements object 347082815dcSEvan Bacon // TODO: Remove this in favor of just overwriting the .entitlements with the Expo object. This will enable people to actually remove values. 348082815dcSEvan Bacon if (!config.ios) config.ios = {}; 349082815dcSEvan Bacon if (!config.ios.entitlements) config.ios.entitlements = {}; 350ee216927STomasz Sapeta config.ios.entitlements = { 351ee216927STomasz Sapeta ...(modResults || {}), 352082815dcSEvan Bacon ...config.ios.entitlements 353082815dcSEvan Bacon }; 354082815dcSEvan Bacon return config.ios.entitlements; 355082815dcSEvan Bacon }, 356082815dcSEvan Bacon async write(filePath, config) { 357082815dcSEvan Bacon // Update the contents of the static entitlements object 358082815dcSEvan Bacon if (!config.ios) { 359082815dcSEvan Bacon config.ios = {}; 360082815dcSEvan Bacon } 361ee216927STomasz Sapeta config.ios.entitlements = config.modResults; 362082815dcSEvan Bacon 363ee216927STomasz Sapeta // Return early without writing, in introspection mode. 364082815dcSEvan Bacon if (config.modRequest.introspect) { 365082815dcSEvan Bacon return; 366082815dcSEvan Bacon } 367082815dcSEvan Bacon await writeFile(filePath, _plist().default.build((0, _sortObject().sortObject)(config.modResults))); 368082815dcSEvan Bacon } 369082815dcSEvan Bacon }), 370082815dcSEvan Bacon // Append a rule to supply Podfile.properties.json data to mods on `mods.ios.podfileProperties` 371082815dcSEvan Bacon podfileProperties: (0, _createBaseMod().provider)({ 372082815dcSEvan Bacon isIntrospective: true, 373082815dcSEvan Bacon getFilePath({ 374082815dcSEvan Bacon modRequest: { 375082815dcSEvan Bacon platformProjectRoot 376082815dcSEvan Bacon } 377082815dcSEvan Bacon }) { 378082815dcSEvan Bacon return _path().default.resolve(platformProjectRoot, 'Podfile.properties.json'); 379082815dcSEvan Bacon }, 380082815dcSEvan Bacon async read(filePath) { 381082815dcSEvan Bacon let results = {}; 382082815dcSEvan Bacon try { 383082815dcSEvan Bacon results = await _jsonFile().default.readAsync(filePath); 384082815dcSEvan Bacon } catch {} 385082815dcSEvan Bacon return results; 386082815dcSEvan Bacon }, 387082815dcSEvan Bacon async write(filePath, { 388082815dcSEvan Bacon modResults, 389082815dcSEvan Bacon modRequest: { 390082815dcSEvan Bacon introspect 391082815dcSEvan Bacon } 392082815dcSEvan Bacon }) { 393082815dcSEvan Bacon if (introspect) { 394082815dcSEvan Bacon return; 395082815dcSEvan Bacon } 396082815dcSEvan Bacon await _jsonFile().default.writeAsync(filePath, modResults); 397082815dcSEvan Bacon } 398082815dcSEvan Bacon }) 399082815dcSEvan Bacon}; 400082815dcSEvan Baconfunction withIosBaseMods(config, { 401082815dcSEvan Bacon providers, 402082815dcSEvan Bacon ...props 403082815dcSEvan Bacon} = {}) { 404ee216927STomasz Sapeta return (0, _createBaseMod().withGeneratedBaseMods)(config, { 405ee216927STomasz Sapeta ...props, 406082815dcSEvan Bacon platform: 'ios', 407082815dcSEvan Bacon providers: providers !== null && providers !== void 0 ? providers : getIosModFileProviders() 408082815dcSEvan Bacon }); 409082815dcSEvan Bacon} 410082815dcSEvan Baconfunction getIosModFileProviders() { 411082815dcSEvan Bacon return defaultProviders; 412082815dcSEvan Bacon} 413082815dcSEvan Bacon//# sourceMappingURL=withIosBaseMods.js.map