1{"version":3,"file":"withAndroidBaseMods.js","names":["readFile","writeFile","promises","getAndroidManifestTemplate","config","parseXMLAsync","android","package","sortAndroidManifest","obj","manifest","sortObject","reverseSortString","Array","isArray","sort","a","b","$","application","map","sortObjWithOrder","defaultProviders","dangerous","provider","getFilePath","read","filePath","modResults","write","isIntrospective","modRequest","platformProjectRoot","path","join","Manifest","readAndroidManifestAsync","error","introspect","writeAndroidManifestAsync","gradleProperties","Properties","parsePropertiesFile","propertiesListToString","strings","projectRoot","Strings","getProjectStringsXMLPathAsync","Resources","readResourcesXMLAsync","resources","writeXMLAsync","xml","colors","Colors","getProjectColorsXMLPathAsync","colorsNight","kind","styles","Styles","getProjectStylesXMLPathAsync","fallback","projectBuildGradle","Paths","getProjectBuildGradleFilePath","getFileInfo","contents","settingsGradle","getSettingsGradleFilePath","appBuildGradle","getAppBuildGradleFilePath","mainActivity","getProjectFilePath","mainApplication","withAndroidBaseMods","providers","props","withGeneratedBaseMods","platform","getAndroidModFileProviders"],"sources":["../../src/plugins/withAndroidBaseMods.ts"],"sourcesContent":["import { promises } from 'fs';\nimport path from 'path';\n\nimport { ExportedConfig, ModConfig } from '../Plugin.types';\nimport { Colors, Manifest, Paths, Properties, Resources, Strings, Styles } from '../android';\nimport { AndroidManifest } from '../android/Manifest';\nimport { parseXMLAsync, writeXMLAsync } from '../utils/XML';\nimport { reverseSortString, sortObject, sortObjWithOrder } from '../utils/sortObject';\nimport { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\n\nconst { readFile, writeFile } = promises;\n\ntype AndroidModName = keyof Required<ModConfig>['android'];\n\nfunction getAndroidManifestTemplate(config: ExportedConfig) {\n  // Keep in sync with https://github.com/expo/expo/blob/master/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml\n  // TODO: Read from remote template when possible\n  return parseXMLAsync(`\n  <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"${\n    config.android?.package ?? 'com.placeholder.appid'\n  }\">\n\n    <uses-permission android:name=\"android.permission.INTERNET\"/>\n    <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->\n    <uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>\n    <!-- These require runtime permissions on M -->\n    <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>\n    <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>\n    <!-- END OPTIONAL PERMISSIONS -->\n\n    <queries>\n      <!-- Support checking for http(s) links via the Linking API -->\n      <intent>\n        <action android:name=\"android.intent.action.VIEW\" />\n        <category android:name=\"android.intent.category.BROWSABLE\" />\n        <data android:scheme=\"https\" />\n      </intent>\n    </queries>\n\n    <application\n      android:name=\".MainApplication\"\n      android:label=\"@string/app_name\"\n      android:icon=\"@mipmap/ic_launcher\"\n      android:roundIcon=\"@mipmap/ic_launcher_round\"\n      android:allowBackup=\"false\"\n      android:theme=\"@style/AppTheme\"\n      android:usesCleartextTraffic=\"true\"\n    >\n      <meta-data android:name=\"expo.modules.updates.EXPO_UPDATE_URL\" android:value=\"YOUR-APP-URL-HERE\"/>\n      <meta-data android:name=\"expo.modules.updates.EXPO_SDK_VERSION\" android:value=\"YOUR-APP-SDK-VERSION-HERE\"/>\n      <activity\n        android:name=\".MainActivity\"\n        android:label=\"@string/app_name\"\n        android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|uiMode\"\n        android:launchMode=\"singleTask\"\n        android:windowSoftInputMode=\"adjustResize\"\n        android:theme=\"@style/Theme.App.SplashScreen\"\n      >\n        <intent-filter>\n          <action android:name=\"android.intent.action.MAIN\"/>\n          <category android:name=\"android.intent.category.LAUNCHER\"/>\n        </intent-filter>\n      </activity>\n      <activity android:name=\"com.facebook.react.devsupport.DevSettingsActivity\"/>\n    </application>\n  </manifest>\n  `) as Promise<AndroidManifest>;\n}\n\nexport function sortAndroidManifest(obj: AndroidManifest) {\n  if (obj.manifest) {\n    // Reverse sort so application is last and permissions are first\n    obj.manifest = sortObject(obj.manifest, reverseSortString);\n\n    if (Array.isArray(obj.manifest['uses-permission'])) {\n      // Sort permissions alphabetically\n      obj.manifest['uses-permission'].sort((a, b) => {\n        if (a.$['android:name'] < b.$['android:name']) return -1;\n        if (a.$['android:name'] > b.$['android:name']) return 1;\n        return 0;\n      });\n    }\n\n    if (Array.isArray(obj.manifest.application)) {\n      // reverse sort applications so activity is towards the end and meta-data is towards the front.\n      obj.manifest.application = obj.manifest.application.map((application) => {\n        application = sortObjWithOrder(application, ['meta-data', 'service', 'activity']);\n\n        if (Array.isArray(application['meta-data'])) {\n          // Sort metadata alphabetically\n          application['meta-data'].sort((a, b) => {\n            if (a.$['android:name'] < b.$['android:name']) return -1;\n            if (a.$['android:name'] > b.$['android:name']) return 1;\n            return 0;\n          });\n        }\n        return application;\n      });\n    }\n  }\n  return obj;\n}\n\nconst defaultProviders = {\n  dangerous: provider<unknown>({\n    getFilePath() {\n      return '';\n    },\n    async read() {\n      return { filePath: '', modResults: {} };\n    },\n    async write() {},\n  }),\n\n  // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n  manifest: provider<Manifest.AndroidManifest>({\n    isIntrospective: true,\n    getFilePath({ modRequest: { platformProjectRoot } }) {\n      return path.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');\n    },\n    async read(filePath, config) {\n      try {\n        return await Manifest.readAndroidManifestAsync(filePath);\n      } catch (error: any) {\n        if (!config.modRequest.introspect) {\n          throw error;\n        }\n      }\n      return await getAndroidManifestTemplate(config);\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));\n    },\n  }),\n\n  // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`\n  gradleProperties: provider<Properties.PropertiesItem[]>({\n    isIntrospective: true,\n\n    getFilePath({ modRequest: { platformProjectRoot } }) {\n      return path.join(platformProjectRoot, 'gradle.properties');\n    },\n    async read(filePath, config) {\n      try {\n        return await Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));\n      } catch (error) {\n        if (!config.modRequest.introspect) {\n          throw error;\n        }\n      }\n      return [];\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await writeFile(filePath, Properties.propertiesListToString(modResults));\n    },\n  }),\n\n  // Append a rule to supply strings.xml data to mods on `mods.android.strings`\n  strings: provider<Resources.ResourceXML>({\n    isIntrospective: true,\n\n    async getFilePath({ modRequest: { projectRoot, introspect } }) {\n      try {\n        return await Strings.getProjectStringsXMLPathAsync(projectRoot);\n      } catch (error: any) {\n        if (!introspect) {\n          throw error;\n        }\n      }\n      return '';\n    },\n\n    async read(filePath, config) {\n      try {\n        return await Resources.readResourcesXMLAsync({ path: filePath });\n      } catch (error) {\n        if (!config.modRequest.introspect) {\n          throw error;\n        }\n      }\n      return { resources: {} };\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await writeXMLAsync({ path: filePath, xml: modResults });\n    },\n  }),\n\n  colors: provider<Resources.ResourceXML>({\n    isIntrospective: true,\n\n    async getFilePath({ modRequest: { projectRoot, introspect } }) {\n      try {\n        return await Colors.getProjectColorsXMLPathAsync(projectRoot);\n      } catch (error: any) {\n        if (!introspect) {\n          throw error;\n        }\n      }\n      return '';\n    },\n\n    async read(filePath, { modRequest: { introspect } }) {\n      try {\n        return await Resources.readResourcesXMLAsync({ path: filePath });\n      } catch (error: any) {\n        if (!introspect) {\n          throw error;\n        }\n      }\n      return { resources: {} };\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await writeXMLAsync({ path: filePath, xml: modResults });\n    },\n  }),\n\n  colorsNight: provider<Resources.ResourceXML>({\n    isIntrospective: true,\n\n    async getFilePath({ modRequest: { projectRoot, introspect } }) {\n      try {\n        return await Colors.getProjectColorsXMLPathAsync(projectRoot, { kind: 'values-night' });\n      } catch (error: any) {\n        if (!introspect) {\n          throw error;\n        }\n      }\n      return '';\n    },\n    async read(filePath, config) {\n      try {\n        return await Resources.readResourcesXMLAsync({ path: filePath });\n      } catch (error: any) {\n        if (!config.modRequest.introspect) {\n          throw error;\n        }\n      }\n      return { resources: {} };\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await writeXMLAsync({ path: filePath, xml: modResults });\n    },\n  }),\n\n  styles: provider<Resources.ResourceXML>({\n    isIntrospective: true,\n\n    async getFilePath({ modRequest: { projectRoot, introspect } }) {\n      try {\n        return await Styles.getProjectStylesXMLPathAsync(projectRoot);\n      } catch (error: any) {\n        if (!introspect) {\n          throw error;\n        }\n      }\n      return '';\n    },\n    async read(filePath, config) {\n      let styles: Resources.ResourceXML = { resources: {} };\n\n      try {\n        // Adds support for `tools:x`\n        styles = await Resources.readResourcesXMLAsync({\n          path: filePath,\n          fallback: `<?xml version=\"1.0\" encoding=\"utf-8\"?><resources xmlns:tools=\"http://schemas.android.com/tools\"></resources>`,\n        });\n      } catch (error: any) {\n        if (!config.modRequest.introspect) {\n          throw error;\n        }\n      }\n\n      // Ensure support for tools is added...\n      if (!styles.resources.$) {\n        styles.resources.$ = {};\n      }\n      if (!styles.resources.$?.['xmlns:tools']) {\n        styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';\n      }\n      return styles;\n    },\n    async write(filePath, { modResults, modRequest: { introspect } }) {\n      if (introspect) return;\n      await writeXMLAsync({ path: filePath, xml: modResults });\n    },\n  }),\n\n  projectBuildGradle: provider<Paths.GradleProjectFile>({\n    getFilePath({ modRequest: { projectRoot } }) {\n      return Paths.getProjectBuildGradleFilePath(projectRoot);\n    },\n    async read(filePath) {\n      return Paths.getFileInfo(filePath);\n    },\n    async write(filePath, { modResults: { contents } }) {\n      await writeFile(filePath, contents);\n    },\n  }),\n\n  settingsGradle: provider<Paths.GradleProjectFile>({\n    getFilePath({ modRequest: { projectRoot } }) {\n      return Paths.getSettingsGradleFilePath(projectRoot);\n    },\n    async read(filePath) {\n      return Paths.getFileInfo(filePath);\n    },\n    async write(filePath, { modResults: { contents } }) {\n      await writeFile(filePath, contents);\n    },\n  }),\n\n  appBuildGradle: provider<Paths.GradleProjectFile>({\n    getFilePath({ modRequest: { projectRoot } }) {\n      return Paths.getAppBuildGradleFilePath(projectRoot);\n    },\n    async read(filePath) {\n      return Paths.getFileInfo(filePath);\n    },\n    async write(filePath, { modResults: { contents } }) {\n      await writeFile(filePath, contents);\n    },\n  }),\n\n  mainActivity: provider<Paths.ApplicationProjectFile>({\n    getFilePath({ modRequest: { projectRoot } }) {\n      return Paths.getProjectFilePath(projectRoot, 'MainActivity');\n    },\n    async read(filePath) {\n      return Paths.getFileInfo(filePath);\n    },\n    async write(filePath, { modResults: { contents } }) {\n      await writeFile(filePath, contents);\n    },\n  }),\n\n  mainApplication: provider<Paths.ApplicationProjectFile>({\n    getFilePath({ modRequest: { projectRoot } }) {\n      return Paths.getProjectFilePath(projectRoot, 'MainApplication');\n    },\n    async read(filePath) {\n      return Paths.getFileInfo(filePath);\n    },\n    async write(filePath, { modResults: { contents } }) {\n      await writeFile(filePath, contents);\n    },\n  }),\n};\n\ntype AndroidDefaultProviders = typeof defaultProviders;\n\nexport function withAndroidBaseMods(\n  config: ExportedConfig,\n  {\n    providers,\n    ...props\n  }: ForwardedBaseModOptions & { providers?: Partial<AndroidDefaultProviders> } = {}\n): ExportedConfig {\n  return withGeneratedBaseMods<AndroidModName>(config, {\n    ...props,\n    platform: 'android',\n    providers: providers ?? getAndroidModFileProviders(),\n  });\n}\n\nexport function getAndroidModFileProviders() {\n  return defaultProviders;\n}\n"],"mappings":"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"}