@expo/config-plugins 55.0.4 → 55.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,15 +2,5 @@ import { ExpoConfig } from '@expo/config-types';
2
2
  import { ResourceXML } from './Resources';
3
3
  import { ConfigPlugin } from '../Plugin.types';
4
4
  export declare const withStatusBar: ConfigPlugin;
5
- export declare function setStatusBarColors(config: Pick<ExpoConfig, 'androidStatusBar'>, colors: ResourceXML): ResourceXML;
6
5
  export declare function setStatusBarStyles(config: Pick<ExpoConfig, 'androidStatusBar'>, styles: ResourceXML): ResourceXML;
7
- export declare function getStatusBarColor(config: Pick<ExpoConfig, 'androidStatusBar'>): string | undefined;
8
- /**
9
- * Specifies whether the status bar should be "translucent". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down).
10
- *
11
- * @default false
12
- * @param config
13
- * @returns
14
- */
15
- export declare function getStatusBarTranslucent(config: Pick<ExpoConfig, 'androidStatusBar'>): boolean;
16
6
  export declare function getStatusBarStyle(config: Pick<ExpoConfig, 'androidStatusBar'>): "light-content" | "dark-content";
@@ -3,26 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getStatusBarColor = getStatusBarColor;
7
6
  exports.getStatusBarStyle = getStatusBarStyle;
8
- exports.getStatusBarTranslucent = getStatusBarTranslucent;
9
- exports.setStatusBarColors = setStatusBarColors;
10
7
  exports.setStatusBarStyles = setStatusBarStyles;
11
8
  exports.withStatusBar = void 0;
12
- function _assert() {
13
- const data = _interopRequireDefault(require("assert"));
14
- _assert = function () {
15
- return data;
16
- };
17
- return data;
18
- }
19
- function _Colors() {
20
- const data = require("./Colors");
21
- _Colors = function () {
22
- return data;
23
- };
24
- return data;
25
- }
26
9
  function _Styles() {
27
10
  const data = require("./Styles");
28
11
  _Styles = function () {
@@ -37,40 +20,41 @@ function _androidPlugins() {
37
20
  };
38
21
  return data;
39
22
  }
40
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
41
- // https://developer.android.com/reference/android/R.attr#colorPrimaryDark
42
- const COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark';
23
+ function WarningAggregator() {
24
+ const data = _interopRequireWildcard(require("../utils/warnings"));
25
+ WarningAggregator = function () {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
30
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
31
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
+ const TAG = 'STATUS_BAR_PLUGIN';
43
33
  // https://developer.android.com/reference/android/R.attr#windowLightStatusBar
44
34
  const WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';
45
35
  // https://developer.android.com/reference/android/R.attr#statusBarColor
46
36
  const STATUS_BAR_COLOR = 'android:statusBarColor';
47
37
  const withStatusBar = config => {
48
- config = withStatusBarColors(config);
38
+ const {
39
+ androidStatusBar = {}
40
+ } = config;
41
+ if ('backgroundColor' in androidStatusBar) {
42
+ WarningAggregator().addWarningAndroid(TAG, 'Due to Android edge-to-edge enforcement, `androidStatusBar.backgroundColor` is deprecated and has no effect. This will be removed in a future release.');
43
+ }
44
+ if ('translucent' in androidStatusBar) {
45
+ WarningAggregator().addWarningAndroid(TAG, 'Due to Android edge-to-edge enforcement, `androidStatusBar.translucent` is deprecated and has no effect. This will be removed in a future release.');
46
+ }
49
47
  config = withStatusBarStyles(config);
50
48
  return config;
51
49
  };
52
50
  exports.withStatusBar = withStatusBar;
53
- const withStatusBarColors = config => {
54
- return (0, _androidPlugins().withAndroidColors)(config, config => {
55
- config.modResults = setStatusBarColors(config, config.modResults);
56
- return config;
57
- });
58
- };
59
51
  const withStatusBarStyles = config => {
60
52
  return (0, _androidPlugins().withAndroidStyles)(config, config => {
61
53
  config.modResults = setStatusBarStyles(config, config.modResults);
62
54
  return config;
63
55
  });
64
56
  };
65
- function setStatusBarColors(config, colors) {
66
- return (0, _Colors().assignColorValue)(colors, {
67
- name: COLOR_PRIMARY_DARK_KEY,
68
- value: getStatusBarColor(config)
69
- });
70
- }
71
57
  function setStatusBarStyles(config, styles) {
72
- const hexString = getStatusBarColor(config);
73
- const floatElement = getStatusBarTranslucent(config);
74
58
  styles = (0, _Styles().assignStylesValue)(styles, {
75
59
  parent: (0, _Styles().getAppThemeGroup)(),
76
60
  name: WINDOW_LIGHT_STATUS_BAR,
@@ -81,31 +65,11 @@ function setStatusBarStyles(config, styles) {
81
65
  styles = (0, _Styles().assignStylesValue)(styles, {
82
66
  parent: (0, _Styles().getAppThemeGroup)(),
83
67
  name: STATUS_BAR_COLOR,
84
- value: floatElement ? '@android:color/transparent' : hexString ?? '@color/colorPrimaryDark',
85
- // Remove the color if translucent is used
86
- add: floatElement || !!hexString
68
+ value: '@android:color/transparent',
69
+ add: true
87
70
  });
88
71
  return styles;
89
72
  }
90
- function getStatusBarColor(config) {
91
- const backgroundColor = config.androidStatusBar?.backgroundColor;
92
- if (backgroundColor) {
93
- // Drop support for translucent
94
- (0, _assert().default)(backgroundColor !== 'translucent', `androidStatusBar.backgroundColor must be a valid hex string, instead got: "${backgroundColor}"`);
95
- }
96
- return backgroundColor;
97
- }
98
-
99
- /**
100
- * Specifies whether the status bar should be "translucent". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down).
101
- *
102
- * @default false
103
- * @param config
104
- * @returns
105
- */
106
- function getStatusBarTranslucent(config) {
107
- return config.androidStatusBar?.translucent ?? false;
108
- }
109
73
  function getStatusBarStyle(config) {
110
74
  return config.androidStatusBar?.barStyle || 'light-content';
111
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBar.js","names":["_assert","data","_interopRequireDefault","require","_Colors","_Styles","_androidPlugins","e","__esModule","default","COLOR_PRIMARY_DARK_KEY","WINDOW_LIGHT_STATUS_BAR","STATUS_BAR_COLOR","withStatusBar","config","withStatusBarColors","withStatusBarStyles","exports","withAndroidColors","modResults","setStatusBarColors","withAndroidStyles","setStatusBarStyles","colors","assignColorValue","name","value","getStatusBarColor","styles","hexString","floatElement","getStatusBarTranslucent","assignStylesValue","parent","getAppThemeGroup","add","getStatusBarStyle","backgroundColor","androidStatusBar","assert","translucent","barStyle"],"sources":["../../src/android/StatusBar.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport assert from 'assert';\n\nimport { assignColorValue } from './Colors';\nimport { ResourceXML } from './Resources';\nimport { assignStylesValue, getAppThemeGroup } from './Styles';\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidColors, withAndroidStyles } from '../plugins/android-plugins';\n\n// https://developer.android.com/reference/android/R.attr#colorPrimaryDark\nconst COLOR_PRIMARY_DARK_KEY = 'colorPrimaryDark';\n// https://developer.android.com/reference/android/R.attr#windowLightStatusBar\nconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';\n// https://developer.android.com/reference/android/R.attr#statusBarColor\nconst STATUS_BAR_COLOR = 'android:statusBarColor';\n\nexport const withStatusBar: ConfigPlugin = (config) => {\n config = withStatusBarColors(config);\n config = withStatusBarStyles(config);\n return config;\n};\n\nconst withStatusBarColors: ConfigPlugin = (config) => {\n return withAndroidColors(config, (config) => {\n config.modResults = setStatusBarColors(config, config.modResults);\n return config;\n });\n};\n\nconst withStatusBarStyles: ConfigPlugin = (config) => {\n return withAndroidStyles(config, (config) => {\n config.modResults = setStatusBarStyles(config, config.modResults);\n return config;\n });\n};\n\nexport function setStatusBarColors(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n colors: ResourceXML\n): ResourceXML {\n return assignColorValue(colors, {\n name: COLOR_PRIMARY_DARK_KEY,\n value: getStatusBarColor(config),\n });\n}\n\nexport function setStatusBarStyles(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n styles: ResourceXML\n): ResourceXML {\n const hexString = getStatusBarColor(config);\n const floatElement = getStatusBarTranslucent(config);\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeGroup(),\n name: WINDOW_LIGHT_STATUS_BAR,\n value: 'true',\n // Default is light-content, don't need to do anything to set it\n add: getStatusBarStyle(config) === 'dark-content',\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeGroup(),\n name: STATUS_BAR_COLOR,\n value: floatElement ? '@android:color/transparent' : (hexString ?? '@color/colorPrimaryDark'),\n // Remove the color if translucent is used\n add: floatElement || !!hexString,\n });\n\n return styles;\n}\n\nexport function getStatusBarColor(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n const backgroundColor = config.androidStatusBar?.backgroundColor;\n if (backgroundColor) {\n // Drop support for translucent\n assert(\n backgroundColor !== 'translucent',\n `androidStatusBar.backgroundColor must be a valid hex string, instead got: \"${backgroundColor}\"`\n );\n }\n return backgroundColor;\n}\n\n/**\n * Specifies whether the status bar should be \"translucent\". When true, the status bar is drawn with `position: absolute` and a gray underlay, when false `position: relative` (pushes content down).\n *\n * @default false\n * @param config\n * @returns\n */\nexport function getStatusBarTranslucent(config: Pick<ExpoConfig, 'androidStatusBar'>): boolean {\n return config.androidStatusBar?.translucent ?? false;\n}\n\nexport function getStatusBarStyle(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n return config.androidStatusBar?.barStyle || 'light-content';\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StatusBar.js","names":["_Styles","data","require","_androidPlugins","WarningAggregator","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TAG","WINDOW_LIGHT_STATUS_BAR","STATUS_BAR_COLOR","withStatusBar","config","androidStatusBar","addWarningAndroid","withStatusBarStyles","exports","withAndroidStyles","modResults","setStatusBarStyles","styles","assignStylesValue","parent","getAppThemeGroup","name","value","add","getStatusBarStyle","barStyle"],"sources":["../../src/android/StatusBar.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ResourceXML } from './Resources';\nimport { assignStylesValue, getAppThemeGroup } from './Styles';\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidStyles } from '../plugins/android-plugins';\nimport * as WarningAggregator from '../utils/warnings';\n\nconst TAG = 'STATUS_BAR_PLUGIN';\n// https://developer.android.com/reference/android/R.attr#windowLightStatusBar\nconst WINDOW_LIGHT_STATUS_BAR = 'android:windowLightStatusBar';\n// https://developer.android.com/reference/android/R.attr#statusBarColor\nconst STATUS_BAR_COLOR = 'android:statusBarColor';\n\nexport const withStatusBar: ConfigPlugin = (config) => {\n const { androidStatusBar = {} } = config;\n\n if ('backgroundColor' in androidStatusBar) {\n WarningAggregator.addWarningAndroid(\n TAG,\n 'Due to Android edge-to-edge enforcement, `androidStatusBar.backgroundColor` is deprecated and has no effect. This will be removed in a future release.'\n );\n }\n if ('translucent' in androidStatusBar) {\n WarningAggregator.addWarningAndroid(\n TAG,\n 'Due to Android edge-to-edge enforcement, `androidStatusBar.translucent` is deprecated and has no effect. This will be removed in a future release.'\n );\n }\n\n config = withStatusBarStyles(config);\n return config;\n};\n\nconst withStatusBarStyles: ConfigPlugin = (config) => {\n return withAndroidStyles(config, (config) => {\n config.modResults = setStatusBarStyles(config, config.modResults);\n return config;\n });\n};\n\nexport function setStatusBarStyles(\n config: Pick<ExpoConfig, 'androidStatusBar'>,\n styles: ResourceXML\n): ResourceXML {\n styles = assignStylesValue(styles, {\n parent: getAppThemeGroup(),\n name: WINDOW_LIGHT_STATUS_BAR,\n value: 'true',\n // Default is light-content, don't need to do anything to set it\n add: getStatusBarStyle(config) === 'dark-content',\n });\n\n styles = assignStylesValue(styles, {\n parent: getAppThemeGroup(),\n name: STATUS_BAR_COLOR,\n value: '@android:color/transparent',\n add: true,\n });\n\n return styles;\n}\n\nexport function getStatusBarStyle(config: Pick<ExpoConfig, 'androidStatusBar'>) {\n return config.androidStatusBar?.barStyle || 'light-content';\n}\n"],"mappings":"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","ignoreList":[]}
@@ -57,15 +57,15 @@ function getAndroidManifestTemplate(config) {
57
57
  // Keep in sync with https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml
58
58
  // TODO: Read from remote template when possible
59
59
  return (0, _XML().parseXMLAsync)(`
60
- <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="${config.android?.package ?? 'com.placeholder.appid'}">
60
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="${config.android?.package ?? 'com.placeholder.appid'}">
61
61
 
62
62
  <uses-permission android:name="android.permission.INTERNET"/>
63
63
  <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->
64
64
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
65
65
  <uses-permission android:name="android.permission.VIBRATE"/>
66
66
  <!-- These require runtime permissions on M -->
67
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
68
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
67
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" tools:replace="android:maxSdkVersion"/>
68
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" tools:replace="android:maxSdkVersion"/>
69
69
  <!-- END OPTIONAL PERMISSIONS -->
70
70
 
71
71
  <queries>
@@ -1 +1 @@
1
- {"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_createBaseMod","_android","_XML","_sortObject","e","__esModule","default","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","finalized","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 { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\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';\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/main/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 <uses-permission android:name=\"android.permission.VIBRATE\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\"/>\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 android:name=\".MainApplication\" android:label=\"@string/app_name\" android:icon=\"@mipmap/ic_launcher\" android:roundIcon=\"@mipmap/ic_launcher_round\" android:allowBackup=\"false\" android:theme=\"@style/AppTheme\" android:supportsRtl=\"true\">\n <activity android:name=\".MainActivity\" android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode|smallestScreenSize\" android:launchMode=\"singleTask\" android:windowSoftInputMode=\"adjustResize\" android:theme=\"@style/Theme.App.SplashScreen\" android:exported=\"true\">\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 </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 finalized: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\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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","ignoreList":[]}
1
+ {"version":3,"file":"withAndroidBaseMods.js","names":["_fs","data","require","_path","_interopRequireDefault","_createBaseMod","_android","_XML","_sortObject","e","__esModule","default","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","finalized","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 { ForwardedBaseModOptions, provider, withGeneratedBaseMods } from './createBaseMod';\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';\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/main/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\" xmlns:tools=\"http://schemas.android.com/tools\" 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 <uses-permission android:name=\"android.permission.VIBRATE\"/>\n <!-- These require runtime permissions on M -->\n <uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\" tools:replace=\"android:maxSdkVersion\"/>\n <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" android:maxSdkVersion=\"32\" tools:replace=\"android:maxSdkVersion\"/>\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 android:name=\".MainApplication\" android:label=\"@string/app_name\" android:icon=\"@mipmap/ic_launcher\" android:roundIcon=\"@mipmap/ic_launcher_round\" android:allowBackup=\"false\" android:theme=\"@style/AppTheme\" android:supportsRtl=\"true\">\n <activity android:name=\".MainActivity\" android:configChanges=\"keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode|smallestScreenSize\" android:launchMode=\"singleTask\" android:windowSoftInputMode=\"adjustResize\" android:theme=\"@style/Theme.App.SplashScreen\" android:exported=\"true\">\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 </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 finalized: provider<unknown>({\n getFilePath() {\n return '';\n },\n async read() {\n return { filePath: '', modResults: {} };\n },\n async write() {},\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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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/config-plugins",
3
- "version": "55.0.4",
3
+ "version": "55.0.6",
4
4
  "description": "A library for Expo config plugins",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "paths"
56
56
  ],
57
57
  "dependencies": {
58
- "@expo/config-types": "^55.0.4",
58
+ "@expo/config-types": "^55.0.5",
59
59
  "@expo/json-file": "~10.0.12",
60
60
  "@expo/plist": "^0.5.2",
61
61
  "@expo/sdk-runtime-versions": "^1.0.0",
@@ -77,5 +77,5 @@
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
80
- "gitHead": "436ffb4355d5207f4a03fbc3568cd33424a40f3e"
80
+ "gitHead": "b183e5cbd95eb6ee54a878291c7077d8d63e4850"
81
81
  }