1{"version":3,"file":"android-plugins.js","names":["createAndroidManifestPlugin","action","name","withUnknown","config","withAndroidManifest","modResults","Object","defineProperty","value","createStringsXmlPlugin","withStringsXml","withMod","platform","mod","withAndroidColors","withAndroidColorsNight","withAndroidStyles","withMainActivity","withMainApplication","withProjectBuildGradle","withAppBuildGradle","withSettingsGradle","withGradleProperties"],"sources":["../../src/plugins/android-plugins.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin, Mod } from '../Plugin.types';\nimport { Manifest, Paths, Properties, Resources } from '../android';\nimport { withMod } from './withMod';\n\ntype OptionalPromise<T> = T | Promise<T>;\n\ntype MutateDataAction<T> = (expo: ExpoConfig, data: T) => OptionalPromise<T>;\n\n/**\n * Helper method for creating mods from existing config functions.\n *\n * @param action\n */\nexport function createAndroidManifestPlugin(\n action: MutateDataAction<Manifest.AndroidManifest>,\n name: string\n): ConfigPlugin {\n const withUnknown: ConfigPlugin = (config) =>\n withAndroidManifest(config, async (config) => {\n config.modResults = await action(config, config.modResults);\n return config;\n });\n if (name) {\n Object.defineProperty(withUnknown, 'name', {\n value: name,\n });\n }\n return withUnknown;\n}\n\nexport function createStringsXmlPlugin(\n action: MutateDataAction<Resources.ResourceXML>,\n name: string\n): ConfigPlugin {\n const withUnknown: ConfigPlugin = (config) =>\n withStringsXml(config, async (config) => {\n config.modResults = await action(config, config.modResults);\n return config;\n });\n if (name) {\n Object.defineProperty(withUnknown, 'name', {\n value: name,\n });\n }\n return withUnknown;\n}\n\n/**\n * Provides the AndroidManifest.xml for modification.\n *\n * @param config\n * @param action\n */\nexport const withAndroidManifest: ConfigPlugin<Mod<Manifest.AndroidManifest>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'manifest',\n action,\n });\n};\n\n/**\n * Provides the strings.xml for modification.\n *\n * @param config\n * @param action\n */\nexport const withStringsXml: ConfigPlugin<Mod<Resources.ResourceXML>> = (config, action) => {\n return withMod(config, {\n platform: 'android',\n mod: 'strings',\n action,\n });\n};\n\n/**\n * Provides the `android/app/src/main/res/values/colors.xml` as JSON (parsed with [`xml2js`](https://www.npmjs.com/package/xml2js)).\n *\n * @param config\n * @param action\n */\nexport const withAndroidColors: ConfigPlugin<Mod<Resources.ResourceXML>> = (config, action) => {\n return withMod(config, {\n platform: 'android',\n mod: 'colors',\n action,\n });\n};\n\n/**\n * Provides the `android/app/src/main/res/values-night/colors.xml` as JSON (parsed with [`xml2js`](https://www.npmjs.com/package/xml2js)).\n *\n * @param config\n * @param action\n */\nexport const withAndroidColorsNight: ConfigPlugin<Mod<Resources.ResourceXML>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'colorsNight',\n action,\n });\n};\n\n/**\n * Provides the `android/app/src/main/res/values/styles.xml` as JSON (parsed with [`xml2js`](https://www.npmjs.com/package/xml2js)).\n *\n * @param config\n * @param action\n */\nexport const withAndroidStyles: ConfigPlugin<Mod<Resources.ResourceXML>> = (config, action) => {\n return withMod(config, {\n platform: 'android',\n mod: 'styles',\n action,\n });\n};\n\n/**\n * Provides the project MainActivity for modification.\n *\n * @param config\n * @param action\n */\nexport const withMainActivity: ConfigPlugin<Mod<Paths.ApplicationProjectFile>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'mainActivity',\n action,\n });\n};\n\n/**\n * Provides the project MainApplication for modification.\n *\n * @param config\n * @param action\n */\nexport const withMainApplication: ConfigPlugin<Mod<Paths.ApplicationProjectFile>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'mainApplication',\n action,\n });\n};\n\n/**\n * Provides the project /build.gradle for modification.\n *\n * @param config\n * @param action\n */\nexport const withProjectBuildGradle: ConfigPlugin<Mod<Paths.GradleProjectFile>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'projectBuildGradle',\n action,\n });\n};\n\n/**\n * Provides the app/build.gradle for modification.\n *\n * @param config\n * @param action\n */\nexport const withAppBuildGradle: ConfigPlugin<Mod<Paths.GradleProjectFile>> = (config, action) => {\n return withMod(config, {\n platform: 'android',\n mod: 'appBuildGradle',\n action,\n });\n};\n\n/**\n * Provides the /settings.gradle for modification.\n *\n * @param config\n * @param action\n */\nexport const withSettingsGradle: ConfigPlugin<Mod<Paths.GradleProjectFile>> = (config, action) => {\n return withMod(config, {\n platform: 'android',\n mod: 'settingsGradle',\n action,\n });\n};\n\n/**\n * Provides the /gradle.properties for modification.\n *\n * @param config\n * @param action\n */\nexport const withGradleProperties: ConfigPlugin<Mod<Properties.PropertiesItem[]>> = (\n config,\n action\n) => {\n return withMod(config, {\n platform: 'android',\n mod: 'gradleProperties',\n action,\n });\n};\n"],"mappings":"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"}