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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"}