@expo/config-plugins 4.0.3 → 4.0.8

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.
Files changed (109) hide show
  1. package/README.md +14 -0
  2. package/build/Plugin.types.js +6 -6
  3. package/build/android/AllowBackup.js +1 -1
  4. package/build/android/Colors.js +3 -3
  5. package/build/android/EasBuild.js +1 -1
  6. package/build/android/GoogleServices.js +3 -3
  7. package/build/android/IntentFilters.js +1 -1
  8. package/build/android/JsEngine.js +2 -1
  9. package/build/android/JsEngine.js.map +1 -1
  10. package/build/android/Manifest.js +10 -10
  11. package/build/android/Name.d.ts +2 -1
  12. package/build/android/Name.js +7 -4
  13. package/build/android/Name.js.map +1 -1
  14. package/build/android/Orientation.js +2 -1
  15. package/build/android/Orientation.js.map +1 -1
  16. package/build/android/Package.js +4 -4
  17. package/build/android/Package.js.map +1 -1
  18. package/build/android/Paths.js +9 -9
  19. package/build/android/Permissions.js +6 -6
  20. package/build/android/Resources.js +5 -5
  21. package/build/android/Scheme.js +3 -3
  22. package/build/android/StatusBar.js +3 -3
  23. package/build/android/Strings.js +1 -1
  24. package/build/android/Styles.js +5 -5
  25. package/build/android/Updates.d.ts +0 -5
  26. package/build/android/Updates.js +14 -23
  27. package/build/android/Updates.js.map +1 -1
  28. package/build/android/Version.js +2 -2
  29. package/build/android/WindowSoftInputMode.js +1 -1
  30. package/build/android/codeMod.js +2 -2
  31. package/build/android/index.d.ts +1 -4
  32. package/build/android/index.js +1 -52
  33. package/build/android/index.js.map +1 -1
  34. package/build/index.js +54 -53
  35. package/build/index.js.map +1 -1
  36. package/build/ios/Bitcode.d.ts +33 -0
  37. package/build/ios/Bitcode.js +131 -0
  38. package/build/ios/Bitcode.js.map +1 -0
  39. package/build/ios/BuildScheme.js +2 -2
  40. package/build/ios/BundleIdentifier.js +3 -3
  41. package/build/ios/DeviceFamily.js +3 -3
  42. package/build/ios/Entitlements.js +2 -2
  43. package/build/ios/Entitlements.js.map +1 -1
  44. package/build/ios/Google.js +2 -2
  45. package/build/ios/JsEngine.js +2 -1
  46. package/build/ios/JsEngine.js.map +1 -1
  47. package/build/ios/Locales.js +1 -1
  48. package/build/ios/Maps.js +32 -18
  49. package/build/ios/Maps.js.map +1 -1
  50. package/build/ios/Orientation.js +2 -1
  51. package/build/ios/Orientation.js.map +1 -1
  52. package/build/ios/Paths.js +14 -14
  53. package/build/ios/Paths.js.map +1 -1
  54. package/build/ios/Permissions.js +1 -1
  55. package/build/ios/Permissions.js.map +1 -1
  56. package/build/ios/Scheme.js +4 -4
  57. package/build/ios/Swift.js +2 -2
  58. package/build/ios/Target.js +5 -5
  59. package/build/ios/Updates.d.ts +0 -5
  60. package/build/ios/Updates.js +14 -23
  61. package/build/ios/Updates.js.map +1 -1
  62. package/build/ios/Version.js +3 -3
  63. package/build/ios/codeMod.js +2 -2
  64. package/build/ios/index.d.ts +2 -3
  65. package/build/ios/index.js +20 -35
  66. package/build/ios/index.js.map +1 -1
  67. package/build/ios/utils/Xcodeproj.js +9 -9
  68. package/build/plugins/android-plugins.js +1 -1
  69. package/build/plugins/createBaseMod.js +2 -2
  70. package/build/plugins/createBaseMod.js.map +1 -1
  71. package/build/plugins/ios-plugins.js +2 -2
  72. package/build/plugins/mod-compiler.js +3 -3
  73. package/build/plugins/mod-compiler.js.map +1 -1
  74. package/build/plugins/withAndroidBaseMods.js +1 -1
  75. package/build/plugins/withIosBaseMods.js +1 -1
  76. package/build/plugins/withStaticPlugin.js +16 -5
  77. package/build/plugins/withStaticPlugin.js.map +1 -1
  78. package/build/utils/Updates.d.ts +1 -0
  79. package/build/utils/Updates.js +24 -1
  80. package/build/utils/Updates.js.map +1 -1
  81. package/build/utils/XML.d.ts +6 -0
  82. package/build/utils/XML.js +57 -10
  83. package/build/utils/XML.js.map +1 -1
  84. package/build/utils/errors.js +1 -1
  85. package/build/utils/generateCode.js +2 -2
  86. package/build/utils/history.js +1 -1
  87. package/build/utils/modules.js +1 -1
  88. package/build/utils/plugin-resolver.js +4 -4
  89. package/build/utils/sortObject.js +2 -2
  90. package/build/utils/warnings.js +1 -1
  91. package/package.json +4 -4
  92. package/build/android/NavigationBar.d.ts +0 -9
  93. package/build/android/NavigationBar.js +0 -141
  94. package/build/android/NavigationBar.js.map +0 -1
  95. package/build/android/RootViewBackgroundColor.d.ts +0 -6
  96. package/build/android/RootViewBackgroundColor.js +0 -81
  97. package/build/android/RootViewBackgroundColor.js.map +0 -1
  98. package/build/android/UserInterfaceStyle.d.ts +0 -10
  99. package/build/android/UserInterfaceStyle.js +0 -119
  100. package/build/android/UserInterfaceStyle.js.map +0 -1
  101. package/build/ios/RootViewBackgroundColor.d.ts +0 -6
  102. package/build/ios/RootViewBackgroundColor.js +0 -70
  103. package/build/ios/RootViewBackgroundColor.js.map +0 -1
  104. package/build/ios/UserInterfaceStyle.d.ts +0 -5
  105. package/build/ios/UserInterfaceStyle.js +0 -59
  106. package/build/ios/UserInterfaceStyle.js.map +0 -1
  107. package/build/utils/resolvePackageRootFolder.d.ts +0 -1
  108. package/build/utils/resolvePackageRootFolder.js +0 -57
  109. package/build/utils/resolvePackageRootFolder.js.map +0 -1
package/README.md CHANGED
@@ -3,3 +3,17 @@
3
3
  The Expo config is a powerful tool for generating native app code from a unified JavaScript interface. Most basic functionality can be controlled by using the the [static Expo config](https://docs.expo.dev/versions/latest/config/app/), but some features require manipulation of the native project files. To support complex behavior we've created config plugins, and mods (short for modifiers).
4
4
 
5
5
  For more info, please refer to the official docs: [Config Plugins](https://docs.expo.dev/guides/config-plugins/).
6
+
7
+ ## Environment Variables
8
+
9
+ ### `EXPO_DEBUG`
10
+
11
+ Print debug information related to static plugin resolution.
12
+
13
+ ### `EXPO_CONFIG_PLUGIN_VERBOSE_ERRORS`
14
+
15
+ Show all error info related to static plugin resolution. Requires `EXPO_DEBUG` to be enabled.
16
+
17
+ ### `EXPO_USE_UNVERSIONED_PLUGINS`
18
+
19
+ Force using the fallback unversioned plugins instead of a local versioned copy from installed packages, this should only be used for testing the CLI.
@@ -3,12 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "XcodeProject", {
7
- enumerable: true,
8
- get: function () {
9
- return _xcode().XcodeProject;
10
- }
11
- });
12
6
  Object.defineProperty(exports, "AndroidManifest", {
13
7
  enumerable: true,
14
8
  get: function () {
@@ -27,6 +21,12 @@ Object.defineProperty(exports, "InfoPlist", {
27
21
  return _IosConfig().InfoPlist;
28
22
  }
29
23
  });
24
+ Object.defineProperty(exports, "XcodeProject", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _xcode().XcodeProject;
28
+ }
29
+ });
30
30
 
31
31
  function _xcode() {
32
32
  const data = require("xcode");
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getAllowBackup = getAllowBackup;
7
- exports.setAllowBackup = setAllowBackup;
8
7
  exports.getAllowBackupFromManifest = getAllowBackupFromManifest;
8
+ exports.setAllowBackup = setAllowBackup;
9
9
  exports.withAllowBackup = void 0;
10
10
 
11
11
  function _androidPlugins() {
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getProjectColorsXMLPathAsync = getProjectColorsXMLPathAsync;
7
- exports.setColorItem = setColorItem;
8
- exports.removeColorItem = removeColorItem;
9
6
  exports.assignColorValue = assignColorValue;
10
7
  exports.getColorsAsObject = getColorsAsObject;
11
8
  exports.getObjectAsColorsXml = getObjectAsColorsXml;
9
+ exports.getProjectColorsXMLPathAsync = getProjectColorsXMLPathAsync;
10
+ exports.removeColorItem = removeColorItem;
11
+ exports.setColorItem = setColorItem;
12
12
 
13
13
  function _Paths() {
14
14
  const data = require("./Paths");
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getEasBuildGradlePath = getEasBuildGradlePath;
7
6
  exports.configureEasBuildAsync = configureEasBuildAsync;
7
+ exports.getEasBuildGradlePath = getEasBuildGradlePath;
8
8
  exports.isEasBuildGradleConfiguredAsync = isEasBuildGradleConfiguredAsync;
9
9
 
10
10
  function _fsExtra() {
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.applyPlugin = applyPlugin;
6
7
  exports.getGoogleServicesFilePath = getGoogleServicesFilePath;
7
- exports.setGoogleServicesFile = setGoogleServicesFile;
8
8
  exports.setClassPath = setClassPath;
9
- exports.applyPlugin = applyPlugin;
10
- exports.withGoogleServicesFile = exports.withApplyPlugin = exports.withClassPath = void 0;
9
+ exports.setGoogleServicesFile = setGoogleServicesFile;
10
+ exports.withGoogleServicesFile = exports.withClassPath = exports.withApplyPlugin = void 0;
11
11
 
12
12
  function _fsExtra() {
13
13
  const data = _interopRequireDefault(require("fs-extra"));
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = renderIntentFilters;
6
7
  exports.getIntentFilters = getIntentFilters;
7
8
  exports.setAndroidIntentFilters = setAndroidIntentFilters;
8
- exports.default = renderIntentFilters;
9
9
  exports.withAndroidIntentFilters = void 0;
10
10
 
11
11
  function _xml2js() {
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.JS_ENGINE_PROP_KEY = exports.DEFAULT_JS_ENGINE = void 0;
6
7
  exports.getJsEngine = getJsEngine;
7
8
  exports.setJsEngine = setJsEngine;
8
- exports.withJsEngineGradleProps = exports.DEFAULT_JS_ENGINE = exports.JS_ENGINE_PROP_KEY = void 0;
9
+ exports.withJsEngineGradleProps = void 0;
9
10
 
10
11
  function _androidPlugins() {
11
12
  const data = require("../plugins/android-plugins");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/JsEngine.ts"],"names":["JS_ENGINE_PROP_KEY","DEFAULT_JS_ENGINE","withJsEngineGradleProps","config","modResults","setJsEngine","getJsEngine","android","jsEngine","gradleProperties","oldPropIndex","findIndex","prop","type","key","newProp","value","push"],"mappings":";;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,kBAAkB,GAAG,eAA3B;;AACA,MAAMC,iBAAiB,GAAG,KAA1B;;;AAEA,MAAMC,uBAAqC,GAAGC,MAAM,IAAI;AAC7D,SAAO,4CAAqBA,MAArB,EAA6BA,MAAM,IAAI;AAC5CA,IAAAA,MAAM,CAACC,UAAP,GAAoBC,WAAW,CAACF,MAAD,EAASA,MAAM,CAACC,UAAhB,CAA/B;AACA,WAAOD,MAAP;AACD,GAHM,CAAP;AAID,CALM;;;;AAOA,SAASG,WAAT,CAAqBH,MAArB,EAAuE;AAAA;;AAC5E,6DAAOA,MAAM,CAACI,OAAd,oDAAO,gBAAgBC,QAAvB,yEAAmCL,MAAM,CAACK,QAA1C,uCAAsDP,iBAAtD;AACD;;AAEM,SAASI,WAAT,CACLF,MADK,EAELM,gBAFK,EAGa;AAAA;;AAClB,QAAMC,YAAY,GAAGD,gBAAgB,CAACE,SAAjB,CACnBC,IAAI,IAAIA,IAAI,CAACC,IAAL,KAAc,UAAd,IAA4BD,IAAI,CAACE,GAAL,KAAad,kBAD9B,CAArB;AAGA,QAAMe,OAAuB,GAAG;AAC9BF,IAAAA,IAAI,EAAE,UADwB;AAE9BC,IAAAA,GAAG,EAAEd,kBAFyB;AAG9BgB,IAAAA,KAAK,yDAAEb,MAAM,CAACI,OAAT,qDAAE,iBAAgBC,QAAlB,2EAA8BL,MAAM,CAACK,QAArC,yCAAiDP;AAHxB,GAAhC;;AAMA,MAAIS,YAAY,IAAI,CAApB,EAAuB;AACrBD,IAAAA,gBAAgB,CAACC,YAAD,CAAhB,GAAiCK,OAAjC;AACD,GAFD,MAEO;AACLN,IAAAA,gBAAgB,CAACQ,IAAjB,CAAsBF,OAAtB;AACD;;AAED,SAAON,gBAAP;AACD","sourcesContent":["import type { ExpoConfig } from '@expo/config-types';\n\nimport type { ConfigPlugin } from '../Plugin.types';\nimport { withGradleProperties } from '../plugins/android-plugins';\nimport type { PropertiesItem } from './Properties';\n\nexport const JS_ENGINE_PROP_KEY = 'expo.jsEngine';\nexport const DEFAULT_JS_ENGINE = 'jsc';\n\nexport const withJsEngineGradleProps: ConfigPlugin = config => {\n return withGradleProperties(config, config => {\n config.modResults = setJsEngine(config, config.modResults);\n return config;\n });\n};\n\nexport function getJsEngine(config: Pick<ExpoConfig, 'android' | 'jsEngine'>) {\n return config.android?.jsEngine ?? config.jsEngine ?? DEFAULT_JS_ENGINE;\n}\n\nexport function setJsEngine(\n config: Pick<ExpoConfig, 'android' | 'jsEngine'>,\n gradleProperties: PropertiesItem[]\n): PropertiesItem[] {\n const oldPropIndex = gradleProperties.findIndex(\n prop => prop.type === 'property' && prop.key === JS_ENGINE_PROP_KEY\n );\n const newProp: PropertiesItem = {\n type: 'property',\n key: JS_ENGINE_PROP_KEY,\n value: config.android?.jsEngine ?? config.jsEngine ?? DEFAULT_JS_ENGINE,\n };\n\n if (oldPropIndex >= 0) {\n gradleProperties[oldPropIndex] = newProp;\n } else {\n gradleProperties.push(newProp);\n }\n\n return gradleProperties;\n}\n"],"file":"JsEngine.js"}
1
+ {"version":3,"sources":["../../src/android/JsEngine.ts"],"names":["JS_ENGINE_PROP_KEY","DEFAULT_JS_ENGINE","withJsEngineGradleProps","config","modResults","setJsEngine","getJsEngine","android","jsEngine","gradleProperties","oldPropIndex","findIndex","prop","type","key","newProp","value","push"],"mappings":";;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,kBAAkB,GAAG,eAA3B;;AACA,MAAMC,iBAAiB,GAAG,KAA1B;;;AAEA,MAAMC,uBAAqC,GAAGC,MAAM,IAAI;AAC7D,SAAO,4CAAqBA,MAArB,EAA6BA,MAAM,IAAI;AAC5CA,IAAAA,MAAM,CAACC,UAAP,GAAoBC,WAAW,CAACF,MAAD,EAASA,MAAM,CAACC,UAAhB,CAA/B;AACA,WAAOD,MAAP;AACD,GAHM,CAAP;AAID,CALM;;;;AAOA,SAASG,WAAT,CAAqBH,MAArB,EAAuE;AAAA;;AAC5E,6DAAOA,MAAM,CAACI,OAAd,oDAAO,gBAAgBC,QAAvB,yEAAmCL,MAAM,CAACK,QAA1C,uCAAsDP,iBAAtD;AACD;;AAEM,SAASI,WAAT,CACLF,MADK,EAELM,gBAFK,EAGa;AAAA;;AAClB,QAAMC,YAAY,GAAGD,gBAAgB,CAACE,SAAjB,CACnBC,IAAI,IAAIA,IAAI,CAACC,IAAL,KAAc,UAAd,IAA4BD,IAAI,CAACE,GAAL,KAAad,kBAD9B,CAArB;AAGA,QAAMe,OAAuB,GAAG;AAC9BF,IAAAA,IAAI,EAAE,UADwB;AAE9BC,IAAAA,GAAG,EAAEd,kBAFyB;AAG9BgB,IAAAA,KAAK,yDAAEb,MAAM,CAACI,OAAT,qDAAE,iBAAgBC,QAAlB,2EAA8BL,MAAM,CAACK,QAArC,yCAAiDP;AAHxB,GAAhC;;AAMA,MAAIS,YAAY,IAAI,CAApB,EAAuB;AACrBD,IAAAA,gBAAgB,CAACC,YAAD,CAAhB,GAAiCK,OAAjC;AACD,GAFD,MAEO;AACLN,IAAAA,gBAAgB,CAACQ,IAAjB,CAAsBF,OAAtB;AACD;;AAED,SAAON,gBAAP;AACD","sourcesContent":["import type { ExpoConfig } from '@expo/config-types';\n\nimport type { ConfigPlugin } from '../Plugin.types';\nimport { withGradleProperties } from '../plugins/android-plugins';\nimport type { PropertiesItem } from './Properties';\n\nexport const JS_ENGINE_PROP_KEY = 'expo.jsEngine';\nexport const DEFAULT_JS_ENGINE = 'jsc';\n\nexport const withJsEngineGradleProps: ConfigPlugin = config => {\n return withGradleProperties(config, config => {\n config.modResults = setJsEngine(config, config.modResults);\n return config;\n });\n};\n\nexport function getJsEngine(config: Pick<ExpoConfig, 'android' | 'jsEngine'>) {\n return config.android?.jsEngine ?? config.jsEngine ?? DEFAULT_JS_ENGINE;\n}\n\nexport function setJsEngine(\n config: Pick<ExpoConfig, 'android' | 'jsEngine'>,\n gradleProperties: PropertiesItem[]\n): PropertiesItem[] {\n const oldPropIndex = gradleProperties.findIndex(\n prop => prop.type === 'property' && prop.key === JS_ENGINE_PROP_KEY\n );\n const newProp: PropertiesItem = {\n type: 'property',\n key: JS_ENGINE_PROP_KEY,\n value: config.android?.jsEngine ?? config.jsEngine ?? DEFAULT_JS_ENGINE,\n };\n\n if (oldPropIndex >= 0) {\n gradleProperties[oldPropIndex] = newProp;\n } else {\n gradleProperties.push(newProp);\n }\n\n return gradleProperties;\n}\n"],"file":"JsEngine.js"}
@@ -3,21 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.writeAndroidManifestAsync = writeAndroidManifestAsync;
7
- exports.readAndroidManifestAsync = readAndroidManifestAsync;
8
- exports.getMainApplication = getMainApplication;
9
- exports.getMainApplicationOrThrow = getMainApplicationOrThrow;
10
- exports.getMainActivityOrThrow = getMainActivityOrThrow;
11
- exports.getRunnableActivity = getRunnableActivity;
12
- exports.getMainActivity = getMainActivity;
13
6
  exports.addMetaDataItemToMainApplication = addMetaDataItemToMainApplication;
14
- exports.removeMetaDataItemFromMainApplication = removeMetaDataItemFromMainApplication;
7
+ exports.addUsesLibraryItemToMainApplication = addUsesLibraryItemToMainApplication;
15
8
  exports.findMetaDataItem = findMetaDataItem;
16
9
  exports.findUsesLibraryItem = findUsesLibraryItem;
10
+ exports.getMainActivity = getMainActivity;
11
+ exports.getMainActivityOrThrow = getMainActivityOrThrow;
12
+ exports.getMainApplication = getMainApplication;
17
13
  exports.getMainApplicationMetaDataValue = getMainApplicationMetaDataValue;
18
- exports.addUsesLibraryItemToMainApplication = addUsesLibraryItemToMainApplication;
19
- exports.removeUsesLibraryItemFromMainApplication = removeUsesLibraryItemFromMainApplication;
14
+ exports.getMainApplicationOrThrow = getMainApplicationOrThrow;
15
+ exports.getRunnableActivity = getRunnableActivity;
20
16
  exports.prefixAndroidKeys = prefixAndroidKeys;
17
+ exports.readAndroidManifestAsync = readAndroidManifestAsync;
18
+ exports.removeMetaDataItemFromMainApplication = removeMetaDataItemFromMainApplication;
19
+ exports.removeUsesLibraryItemFromMainApplication = removeUsesLibraryItemFromMainApplication;
20
+ exports.writeAndroidManifestAsync = writeAndroidManifestAsync;
21
21
 
22
22
  function _assert() {
23
23
  const data = _interopRequireDefault(require("assert"));
@@ -2,7 +2,8 @@ import { ExpoConfig } from '@expo/config-types';
2
2
  import { ConfigPlugin } from '../Plugin.types';
3
3
  /**
4
4
  * Sanitize a name, this should be used for files and gradle names.
5
- * - `[/, \, :, <, >, ", ?, *, |]` are not allowed https://bit.ly/3l6xqKL
5
+ * - `[/, \, :, <, >, ", ?, *, |]` are not allowed
6
+ * https://docs.gradle.org/4.2/release-notes.html#path-separator-characters-in-names-are-deprecated
6
7
  *
7
8
  * @param name
8
9
  */
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sanitizeNameForGradle = sanitizeNameForGradle;
7
- exports.getName = getName;
8
6
  exports.applyNameSettingsGradle = applyNameSettingsGradle;
7
+ exports.getName = getName;
8
+ exports.sanitizeNameForGradle = sanitizeNameForGradle;
9
9
  exports.withNameSettingsGradle = exports.withName = void 0;
10
10
 
11
11
  function _androidPlugins() {
@@ -50,13 +50,16 @@ function _Strings() {
50
50
 
51
51
  /**
52
52
  * Sanitize a name, this should be used for files and gradle names.
53
- * - `[/, \, :, <, >, ", ?, *, |]` are not allowed https://bit.ly/3l6xqKL
53
+ * - `[/, \, :, <, >, ", ?, *, |]` are not allowed
54
+ * https://docs.gradle.org/4.2/release-notes.html#path-separator-characters-in-names-are-deprecated
54
55
  *
55
56
  * @param name
56
57
  */
57
58
  function sanitizeNameForGradle(name) {
58
- // Gradle disallows these:
59
+ // Remove escape characters which are valid in XML names but not in gradle.
60
+ name = name.replace(/[\n\r\t]/g, ''); // Gradle disallows these:
59
61
  // The project name 'My-Special 😃 Co/ol_Project' must not contain any of the following characters: [/, \, :, <, >, ", ?, *, |]. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/6.2/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).
62
+
60
63
  return name.replace(/(\/|\\|:|<|>|"|\?|\*|\|)/g, '');
61
64
  }
62
65
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Name.ts"],"names":["sanitizeNameForGradle","name","replace","withName","applyNameFromConfig","withNameSettingsGradle","config","modResults","language","contents","applyNameSettingsGradle","getName","stringsJSON","value","settingsGradle"],"mappings":";;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAT,CAA+BC,IAA/B,EAAqD;AAC1D;AACA;AACA,SAAOA,IAAI,CAACC,OAAL,CAAa,2BAAb,EAA0C,EAA1C,CAAP;AACD;;AAEM,MAAMC,QAAQ,GAAG,8CAAuBC,mBAAvB,EAA4C,UAA5C,CAAjB;;;AAEA,MAAMC,sBAAoC,GAAGC,MAAM,IAAI;AAC5D,SAAO,0CAAmBA,MAAnB,EAA2BA,MAAM,IAAI;AAC1C,QAAIA,MAAM,CAACC,UAAP,CAAkBC,QAAlB,KAA+B,QAAnC,EAA6C;AAC3CF,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BC,uBAAuB,CAACJ,MAAD,EAASA,MAAM,CAACC,UAAP,CAAkBE,QAA3B,CAApD;AACD,KAFD,MAEO;AACL,yCACE,MADF,EAEG,mEAFH;AAID;;AACD,WAAOH,MAAP;AACD,GAVM,CAAP;AAWD,CAZM;;;;AAcA,SAASK,OAAT,CAAiBL,MAAjB,EAAmD;AACxD,SAAO,OAAOA,MAAM,CAACL,IAAd,KAAuB,QAAvB,GAAkCK,MAAM,CAACL,IAAzC,GAAgD,IAAvD;AACD;;AAED,SAASG,mBAAT,CACEE,MADF,EAEEM,WAFF,EAGe;AACb,QAAMX,IAAI,GAAGU,OAAO,CAACL,MAAD,CAApB;;AACA,MAAIL,IAAJ,EAAU;AACR,WAAO,8BAAc,CAAC,oCAAkB;AAAEA,MAAAA,IAAI,EAAE,UAAR;AAAoBY,MAAAA,KAAK,EAAEZ;AAA3B,KAAlB,CAAD,CAAd,EAAsEW,WAAtE,CAAP;AACD;;AACD,SAAO,iCAAiB,UAAjB,EAA6BA,WAA7B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASF,uBAAT,CAAiCJ,MAAjC,EAAmEQ,cAAnE,EAA2F;AAAA;;AAChG,QAAMb,IAAI,GAAGD,qBAAqB,aAACW,OAAO,CAACL,MAAD,CAAR,+CAAoB,EAApB,CAAlC,CADgG,CAGhG;;AACA,SAAOQ,cAAc,CAACZ,OAAf,CACL,oDADK,EAEJ,uBAAsBD,IAAI,CAACC,OAAL,CAAa,IAAb,EAAmB,KAAnB,CAA0B,GAF5C,CAAP;AAID","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createStringsXmlPlugin, withSettingsGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\n\n/**\n * Sanitize a name, this should be used for files and gradle names.\n * - `[/, \\, :, <, >, \", ?, *, |]` are not allowed https://bit.ly/3l6xqKL\n *\n * @param name\n */\nexport function sanitizeNameForGradle(name: string): string {\n // Gradle disallows these:\n // The project name 'My-Special 😃 Co/ol_Project' must not contain any of the following characters: [/, \\, :, <, >, \", ?, *, |]. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/6.2/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).\n return name.replace(/(\\/|\\\\|:|<|>|\"|\\?|\\*|\\|)/g, '');\n}\n\nexport const withName = createStringsXmlPlugin(applyNameFromConfig, 'withName');\n\nexport const withNameSettingsGradle: ConfigPlugin = config => {\n return withSettingsGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = applyNameSettingsGradle(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'name',\n `Cannot automatically configure settings.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function getName(config: Pick<ExpoConfig, 'name'>) {\n return typeof config.name === 'string' ? config.name : null;\n}\n\nfunction applyNameFromConfig(\n config: Pick<ExpoConfig, 'name'>,\n stringsJSON: ResourceXML\n): ResourceXML {\n const name = getName(config);\n if (name) {\n return setStringItem([buildResourceItem({ name: 'app_name', value: name })], stringsJSON);\n }\n return removeStringItem('app_name', stringsJSON);\n}\n\n/**\n * Regex a name change -- fragile.\n *\n * @param config\n * @param settingsGradle\n */\nexport function applyNameSettingsGradle(config: Pick<ExpoConfig, 'name'>, settingsGradle: string) {\n const name = sanitizeNameForGradle(getName(config) ?? '');\n\n // Select rootProject.name = '***' and replace the contents between the quotes.\n return settingsGradle.replace(\n /rootProject.name\\s?=\\s?([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g,\n `rootProject.name = '${name.replace(/'/g, \"\\\\'\")}'`\n );\n}\n"],"file":"Name.js"}
1
+ {"version":3,"sources":["../../src/android/Name.ts"],"names":["sanitizeNameForGradle","name","replace","withName","applyNameFromConfig","withNameSettingsGradle","config","modResults","language","contents","applyNameSettingsGradle","getName","stringsJSON","value","settingsGradle"],"mappings":";;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,qBAAT,CAA+BC,IAA/B,EAAqD;AAC1D;AACAA,EAAAA,IAAI,GAAGA,IAAI,CAACC,OAAL,CAAa,WAAb,EAA0B,EAA1B,CAAP,CAF0D,CAI1D;AACA;;AACA,SAAOD,IAAI,CAACC,OAAL,CAAa,2BAAb,EAA0C,EAA1C,CAAP;AACD;;AAEM,MAAMC,QAAQ,GAAG,8CAAuBC,mBAAvB,EAA4C,UAA5C,CAAjB;;;AAEA,MAAMC,sBAAoC,GAAGC,MAAM,IAAI;AAC5D,SAAO,0CAAmBA,MAAnB,EAA2BA,MAAM,IAAI;AAC1C,QAAIA,MAAM,CAACC,UAAP,CAAkBC,QAAlB,KAA+B,QAAnC,EAA6C;AAC3CF,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BC,uBAAuB,CAACJ,MAAD,EAASA,MAAM,CAACC,UAAP,CAAkBE,QAA3B,CAApD;AACD,KAFD,MAEO;AACL,yCACE,MADF,EAEG,mEAFH;AAID;;AACD,WAAOH,MAAP;AACD,GAVM,CAAP;AAWD,CAZM;;;;AAcA,SAASK,OAAT,CAAiBL,MAAjB,EAAmD;AACxD,SAAO,OAAOA,MAAM,CAACL,IAAd,KAAuB,QAAvB,GAAkCK,MAAM,CAACL,IAAzC,GAAgD,IAAvD;AACD;;AAED,SAASG,mBAAT,CACEE,MADF,EAEEM,WAFF,EAGe;AACb,QAAMX,IAAI,GAAGU,OAAO,CAACL,MAAD,CAApB;;AACA,MAAIL,IAAJ,EAAU;AACR,WAAO,8BAAc,CAAC,oCAAkB;AAAEA,MAAAA,IAAI,EAAE,UAAR;AAAoBY,MAAAA,KAAK,EAAEZ;AAA3B,KAAlB,CAAD,CAAd,EAAsEW,WAAtE,CAAP;AACD;;AACD,SAAO,iCAAiB,UAAjB,EAA6BA,WAA7B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASF,uBAAT,CAAiCJ,MAAjC,EAAmEQ,cAAnE,EAA2F;AAAA;;AAChG,QAAMb,IAAI,GAAGD,qBAAqB,aAACW,OAAO,CAACL,MAAD,CAAR,+CAAoB,EAApB,CAAlC,CADgG,CAGhG;;AACA,SAAOQ,cAAc,CAACZ,OAAf,CACL,oDADK,EAEJ,uBAAsBD,IAAI,CAACC,OAAL,CAAa,IAAb,EAAmB,KAAnB,CAA0B,GAF5C,CAAP;AAID","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createStringsXmlPlugin, withSettingsGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\n\n/**\n * Sanitize a name, this should be used for files and gradle names.\n * - `[/, \\, :, <, >, \", ?, *, |]` are not allowed\n * https://docs.gradle.org/4.2/release-notes.html#path-separator-characters-in-names-are-deprecated\n *\n * @param name\n */\nexport function sanitizeNameForGradle(name: string): string {\n // Remove escape characters which are valid in XML names but not in gradle.\n name = name.replace(/[\\n\\r\\t]/g, '');\n\n // Gradle disallows these:\n // The project name 'My-Special 😃 Co/ol_Project' must not contain any of the following characters: [/, \\, :, <, >, \", ?, *, |]. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/6.2/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).\n return name.replace(/(\\/|\\\\|:|<|>|\"|\\?|\\*|\\|)/g, '');\n}\n\nexport const withName = createStringsXmlPlugin(applyNameFromConfig, 'withName');\n\nexport const withNameSettingsGradle: ConfigPlugin = config => {\n return withSettingsGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = applyNameSettingsGradle(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'name',\n `Cannot automatically configure settings.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function getName(config: Pick<ExpoConfig, 'name'>) {\n return typeof config.name === 'string' ? config.name : null;\n}\n\nfunction applyNameFromConfig(\n config: Pick<ExpoConfig, 'name'>,\n stringsJSON: ResourceXML\n): ResourceXML {\n const name = getName(config);\n if (name) {\n return setStringItem([buildResourceItem({ name: 'app_name', value: name })], stringsJSON);\n }\n return removeStringItem('app_name', stringsJSON);\n}\n\n/**\n * Regex a name change -- fragile.\n *\n * @param config\n * @param settingsGradle\n */\nexport function applyNameSettingsGradle(config: Pick<ExpoConfig, 'name'>, settingsGradle: string) {\n const name = sanitizeNameForGradle(getName(config) ?? '');\n\n // Select rootProject.name = '***' and replace the contents between the quotes.\n return settingsGradle.replace(\n /rootProject.name\\s?=\\s?([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g,\n `rootProject.name = '${name.replace(/'/g, \"\\\\'\")}'`\n );\n}\n"],"file":"Name.js"}
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.SCREEN_ORIENTATION_ATTRIBUTE = void 0;
6
7
  exports.getOrientation = getOrientation;
7
8
  exports.setAndroidOrientation = setAndroidOrientation;
8
- exports.withOrientation = exports.SCREEN_ORIENTATION_ATTRIBUTE = void 0;
9
+ exports.withOrientation = void 0;
9
10
 
10
11
  function _androidPlugins() {
11
12
  const data = require("../plugins/android-plugins");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Orientation.ts"],"names":["SCREEN_ORIENTATION_ATTRIBUTE","withOrientation","setAndroidOrientation","getOrientation","config","orientation","androidManifest","mainActivity","$"],"mappings":";;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,4BAA4B,GAAG,2BAArC;;AAEA,MAAMC,eAAe,GAAG,mDAC7BC,qBAD6B,EAE7B,iBAF6B,CAAxB;;;AAKA,SAASC,cAAT,CAAwBC,MAAxB,EAAiE;AACtE,SAAO,OAAOA,MAAM,CAACC,WAAd,KAA8B,QAA9B,GAAyCD,MAAM,CAACC,WAAhD,GAA8D,IAArE;AACD;;AAEM,SAASH,qBAAT,CACLE,MADK,EAELE,eAFK,EAGL;AACA,QAAMD,WAAW,GAAGF,cAAc,CAACC,MAAD,CAAlC,CADA,CAEA;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,WAAOC,eAAP;AACD;;AAED,QAAMC,YAAY,GAAG,wCAAuBD,eAAvB,CAArB;AAEAC,EAAAA,YAAY,CAACC,CAAb,CAAeR,4BAAf,IACEK,WAAW,KAAK,SAAhB,GAA4BA,WAA5B,GAA0C,aAD5C;AAGA,SAAOC,eAAP;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createAndroidManifestPlugin } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nexport const SCREEN_ORIENTATION_ATTRIBUTE = 'android:screenOrientation';\n\nexport const withOrientation = createAndroidManifestPlugin(\n setAndroidOrientation,\n 'withOrientation'\n);\n\nexport function getOrientation(config: Pick<ExpoConfig, 'orientation'>) {\n return typeof config.orientation === 'string' ? config.orientation : null;\n}\n\nexport function setAndroidOrientation(\n config: Pick<ExpoConfig, 'orientation'>,\n androidManifest: AndroidManifest\n) {\n const orientation = getOrientation(config);\n // TODO: Remove this if we decide to remove any orientation configuration when not specified\n if (!orientation) {\n return androidManifest;\n }\n\n const mainActivity = getMainActivityOrThrow(androidManifest);\n\n mainActivity.$[SCREEN_ORIENTATION_ATTRIBUTE] =\n orientation !== 'default' ? orientation : 'unspecified';\n\n return androidManifest;\n}\n"],"file":"Orientation.js"}
1
+ {"version":3,"sources":["../../src/android/Orientation.ts"],"names":["SCREEN_ORIENTATION_ATTRIBUTE","withOrientation","setAndroidOrientation","getOrientation","config","orientation","androidManifest","mainActivity","$"],"mappings":";;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,4BAA4B,GAAG,2BAArC;;AAEA,MAAMC,eAAe,GAAG,mDAC7BC,qBAD6B,EAE7B,iBAF6B,CAAxB;;;AAKA,SAASC,cAAT,CAAwBC,MAAxB,EAAiE;AACtE,SAAO,OAAOA,MAAM,CAACC,WAAd,KAA8B,QAA9B,GAAyCD,MAAM,CAACC,WAAhD,GAA8D,IAArE;AACD;;AAEM,SAASH,qBAAT,CACLE,MADK,EAELE,eAFK,EAGL;AACA,QAAMD,WAAW,GAAGF,cAAc,CAACC,MAAD,CAAlC,CADA,CAEA;;AACA,MAAI,CAACC,WAAL,EAAkB;AAChB,WAAOC,eAAP;AACD;;AAED,QAAMC,YAAY,GAAG,wCAAuBD,eAAvB,CAArB;AAEAC,EAAAA,YAAY,CAACC,CAAb,CAAeR,4BAAf,IACEK,WAAW,KAAK,SAAhB,GAA4BA,WAA5B,GAA0C,aAD5C;AAGA,SAAOC,eAAP;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { createAndroidManifestPlugin } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nexport const SCREEN_ORIENTATION_ATTRIBUTE = 'android:screenOrientation';\n\nexport const withOrientation = createAndroidManifestPlugin(\n setAndroidOrientation,\n 'withOrientation'\n);\n\nexport function getOrientation(config: Pick<ExpoConfig, 'orientation'>) {\n return typeof config.orientation === 'string' ? config.orientation : null;\n}\n\nexport function setAndroidOrientation(\n config: Pick<ExpoConfig, 'orientation'>,\n androidManifest: AndroidManifest\n) {\n const orientation = getOrientation(config);\n // TODO: Remove this if we decide to remove any orientation configuration when not specified\n if (!orientation) {\n return androidManifest;\n }\n\n const mainActivity = getMainActivityOrThrow(androidManifest);\n\n mainActivity.$[SCREEN_ORIENTATION_ATTRIBUTE] =\n orientation !== 'default' ? orientation : 'unspecified';\n\n return androidManifest;\n}\n"],"file":"Orientation.js"}
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getApplicationIdAsync = getApplicationIdAsync;
6
7
  exports.getPackage = getPackage;
7
8
  exports.renamePackageOnDisk = renamePackageOnDisk;
8
9
  exports.renamePackageOnDiskForType = renamePackageOnDiskForType;
9
- exports.setPackageInBuildGradle = setPackageInBuildGradle;
10
10
  exports.setPackageInAndroidManifest = setPackageInAndroidManifest;
11
- exports.getApplicationIdAsync = getApplicationIdAsync;
12
- exports.withPackageRefactor = exports.withPackageGradle = exports.withPackageManifest = void 0;
11
+ exports.setPackageInBuildGradle = setPackageInBuildGradle;
12
+ exports.withPackageRefactor = exports.withPackageManifest = exports.withPackageGradle = void 0;
13
13
 
14
14
  function _debug() {
15
15
  const data = _interopRequireDefault(require("debug"));
@@ -103,7 +103,7 @@ function _Paths() {
103
103
 
104
104
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
105
105
 
106
- const debug = (0, _debug().default)('config-plugins:android:package');
106
+ const debug = (0, _debug().default)('expo:config-plugins:android:package');
107
107
  const withPackageManifest = (0, _androidPlugins().createAndroidManifestPlugin)(setPackageInAndroidManifest, 'withPackageManifest');
108
108
  exports.withPackageManifest = withPackageManifest;
109
109
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/android/Package.ts"],"names":["debug","withPackageManifest","setPackageInAndroidManifest","withPackageGradle","config","modResults","language","contents","setPackageInBuildGradle","withPackageRefactor","renamePackageOnDisk","modRequest","projectRoot","getPackage","android","package","getPackageRoot","type","path","join","getCurrentPackageName","packageRoot","mainApplication","packagePath","dirname","packagePathParts","relative","split","sep","filter","Boolean","getCurrentPackageForProjectFile","fileName","filePath","getCurrentPackageNameForType","newPackageName","renamePackageOnDiskForType","packageName","currentPackageName","currentPackagePath","newPackagePath","fs","mkdirpSync","cwd","forEach","relativePath","filepath","lstatSync","isFile","moveSync","oldPathParts","length","pathToCheck","files","readdirSync","rmdirSync","pop","filesToUpdate","absolute","push","readFileSync","toString","replace","RegExp","writeFileSync","e","buildGradle","pattern","androidManifest","manifest","$","getApplicationIdAsync","buildGradlePath","pathExists","readFile","matchResult","match"],"mappings":";;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAEA,MAAMA,KAAK,GAAG,sBAAM,gCAAN,CAAd;AAEO,MAAMC,mBAAmB,GAAG,mDACjCC,2BADiC,EAEjC,qBAFiC,CAA5B;;;AAKA,MAAMC,iBAA+B,GAAGC,MAAM,IAAI;AACvD,SAAO,0CAAmBA,MAAnB,EAA2BA,MAAM,IAAI;AAC1C,QAAIA,MAAM,CAACC,UAAP,CAAkBC,QAAlB,KAA+B,QAAnC,EAA6C;AAC3CF,MAAAA,MAAM,CAACC,UAAP,CAAkBE,QAAlB,GAA6BC,uBAAuB,CAACJ,MAAD,EAASA,MAAM,CAACC,UAAP,CAAkBE,QAA3B,CAApD;AACD,KAFD,MAEO;AACL,yCACE,iBADF,EAEG,oEAFH;AAID;;AACD,WAAOH,MAAP;AACD,GAVM,CAAP;AAWD,CAZM;;;;AAcA,MAAMK,mBAAiC,GAAGL,MAAM,IAAI;AACzD,SAAO,0CAAiBA,MAAjB,EAAyB,CAC9B,SAD8B,EAE9B,MAAMA,MAAN,IAAgB;AACd,UAAMM,mBAAmB,CAACN,MAAD,EAASA,MAAM,CAACO,UAAP,CAAkBC,WAA3B,CAAzB;AACA,WAAOR,MAAP;AACD,GAL6B,CAAzB,CAAP;AAOD,CARM;;;;AAUA,SAASS,UAAT,CAAoBT,MAApB,EAAyD;AAAA;;AAC9D,qDAAOA,MAAM,CAACU,OAAd,oDAAO,gBAAgBC,OAAvB,yEAAkC,IAAlC;AACD;;AAED,SAASC,cAAT,CAAwBJ,WAAxB,EAA6CK,IAA7C,EAAqE;AACnE,SAAOC,gBAAKC,IAAL,CAAUP,WAAV,EAAuB,SAAvB,EAAkC,KAAlC,EAAyC,KAAzC,EAAgDK,IAAhD,EAAsD,MAAtD,CAAP;AACD;;AAED,SAASG,qBAAT,CAA+BR,WAA/B,EAAoDS,WAApD,EAAyE;AACvE,QAAMC,eAAe,GAAG,iCAAmBV,WAAnB,EAAgC,iBAAhC,CAAxB;;AACA,QAAMW,WAAW,GAAGL,gBAAKM,OAAL,CAAaF,eAAb,CAApB;;AACA,QAAMG,gBAAgB,GAAGP,gBAAKQ,QAAL,CAAcL,WAAd,EAA2BE,WAA3B,EAAwCI,KAAxC,CAA8CT,gBAAKU,GAAnD,EAAwDC,MAAxD,CAA+DC,OAA/D,CAAzB;;AAEA,SAAOL,gBAAgB,CAACN,IAAjB,CAAsB,GAAtB,CAAP;AACD;;AAED,SAASY,+BAAT,CACEnB,WADF,EAEES,WAFF,EAGEW,QAHF,EAIEf,IAJF,EAKE;AACA,QAAMgB,QAAQ,GAAG,kBACff,gBAAKC,IAAL,CAAUP,WAAV,EAAwB,mBAAkBK,IAAK,YAAWe,QAAS,aAAnE,CADe,EAEf,CAFe,CAAjB;;AAIA,MAAI,CAACC,QAAL,EAAe;AACb,WAAO,IAAP;AACD;;AAED,QAAMV,WAAW,GAAGL,gBAAKM,OAAL,CAAaS,QAAb,CAApB;;AACA,QAAMR,gBAAgB,GAAGP,gBAAKQ,QAAL,CAAcL,WAAd,EAA2BE,WAA3B,EAAwCI,KAAxC,CAA8CT,gBAAKU,GAAnD,EAAwDC,MAAxD,CAA+DC,OAA/D,CAAzB;;AAEA,SAAOL,gBAAgB,CAACN,IAAjB,CAAsB,GAAtB,CAAP;AACD;;AAED,SAASe,4BAAT,CAAsCtB,WAAtC,EAA2DK,IAA3D,EAAwF;AACtF,QAAMI,WAAW,GAAGL,cAAc,CAACJ,WAAD,EAAcK,IAAd,CAAlC;;AAEA,MAAIA,IAAI,KAAK,MAAb,EAAqB;AACnB,WAAOG,qBAAqB,CAACR,WAAD,EAAcS,WAAd,CAA5B;AACD,GALqF,CAMtF;;;AACA,SAAOU,+BAA+B,CAACnB,WAAD,EAAcS,WAAd,EAA2B,GAA3B,EAAgCJ,IAAhC,CAAtC;AACD,C,CAED;AACA;AACA;;;AACO,eAAeP,mBAAf,CACLN,MADK,EAELQ,WAFK,EAGL;AACA,QAAMuB,cAAc,GAAGtB,UAAU,CAACT,MAAD,CAAjC;;AACA,MAAI+B,cAAc,KAAK,IAAvB,EAA6B;AAC3B;AACD;;AAED,OAAK,MAAMlB,IAAX,IAAmB,CAAC,MAAD,EAAS,OAAT,CAAnB,EAAsC;AACpC,UAAMmB,0BAA0B,CAAC;AAAExB,MAAAA,WAAF;AAAeK,MAAAA,IAAf;AAAqBoB,MAAAA,WAAW,EAAEF;AAAlC,KAAD,CAAhC;AACD;AACF;;AAEM,eAAeC,0BAAf,CAA0C;AAC/CxB,EAAAA,WAD+C;AAE/CK,EAAAA,IAF+C;AAG/CoB,EAAAA;AAH+C,CAA1C,EAQJ;AACD,MAAI,CAACA,WAAL,EAAkB;AAChB;AACD;;AAED,QAAMC,kBAAkB,GAAGJ,4BAA4B,CAACtB,WAAD,EAAcK,IAAd,CAAvD;AACAjB,EAAAA,KAAK,CAAE,kBAAiBsC,kBAAmB,eAAcrB,IAAK,GAAzD,CAAL;;AACA,MAAI,CAACqB,kBAAD,IAAuBA,kBAAkB,KAAKD,WAAlD,EAA+D;AAC7D;AACD;;AACDrC,EAAAA,KAAK,CAAE,aAAYsC,kBAAmB,SAAQD,WAAY,eAAcpB,IAAK,GAAxE,CAAL;AACA,QAAMI,WAAW,GAAGL,cAAc,CAACJ,WAAD,EAAcK,IAAd,CAAlC,CAXC,CAYD;;AACA,MAAI,EAAE,MAAM,qCAAqBI,WAArB,CAAR,CAAJ,EAAgD;AAC9CrB,IAAAA,KAAK,CAAE,6CAA4CqB,WAAY,EAA1D,CAAL;AACA;AACD;;AAED,QAAMkB,kBAAkB,GAAGrB,gBAAKC,IAAL,CAAUE,WAAV,EAAuB,GAAGiB,kBAAkB,CAACX,KAAnB,CAAyB,GAAzB,CAA1B,CAA3B;;AACA,QAAMa,cAAc,GAAGtB,gBAAKC,IAAL,CAAUE,WAAV,EAAuB,GAAGgB,WAAW,CAACV,KAAZ,CAAkB,GAAlB,CAA1B,CAAvB,CAnBC,CAqBD;;;AACAc,qBAAGC,UAAH,CAAcF,cAAd,EAtBC,CAwBD;;;AACA,oBAAS,MAAT,EAAiB;AAAEG,IAAAA,GAAG,EAAEJ;AAAP,GAAjB,EAA8CK,OAA9C,CAAsDC,YAAY,IAAI;AACpE,UAAMC,QAAQ,GAAG5B,gBAAKC,IAAL,CAAUoB,kBAAV,EAA8BM,YAA9B,CAAjB;;AACA,QAAIJ,mBAAGM,SAAH,CAAaD,QAAb,EAAuBE,MAAvB,EAAJ,EAAqC;AACnCP,yBAAGQ,QAAH,CAAYH,QAAZ,EAAsB5B,gBAAKC,IAAL,CAAUqB,cAAV,EAA0BK,YAA1B,CAAtB;AACD,KAFD,MAEO;AACLJ,yBAAGC,UAAH,CAAcI,QAAd;AACD;AACF,GAPD,EAzBC,CAkCD;AACA;;AACA,QAAMI,YAAY,GAAGZ,kBAAkB,CAACX,KAAnB,CAAyB,GAAzB,CAArB;;AACA,SAAOuB,YAAY,CAACC,MAApB,EAA4B;AAC1B,UAAMC,WAAW,GAAGlC,gBAAKC,IAAL,CAAUE,WAAV,EAAuB,GAAG6B,YAA1B,CAApB;;AACA,QAAI;AACF,YAAMG,KAAK,GAAGZ,mBAAGa,WAAH,CAAeF,WAAf,CAAd;;AACA,UAAIC,KAAK,CAACF,MAAN,KAAiB,CAArB,EAAwB;AACtBV,2BAAGc,SAAH,CAAaH,WAAb;AACD;AACF,KALD,SAKU;AACRF,MAAAA,YAAY,CAACM,GAAb;AACD;AACF;;AAED,QAAMC,aAAa,GAAG,CAAC,GAAG,kBAAS,MAAT,EAAiB;AAAEd,IAAAA,GAAG,EAAEH,cAAP;AAAuBkB,IAAAA,QAAQ,EAAE;AAAjC,GAAjB,CAAJ,CAAtB,CAjDC,CAkDD;;AACA,MAAIzC,IAAI,KAAK,MAAb,EAAqB;AACnBwC,IAAAA,aAAa,CAACE,IAAd,CAAmBzC,gBAAKC,IAAL,CAAUP,WAAV,EAAuB,SAAvB,EAAkC,KAAlC,EAAyC,MAAzC,CAAnB;AACD,GArDA,CAsDD;;;AACA6C,EAAAA,aAAa,CAACb,OAAd,CAAuBE,QAAD,IAAsB;AAC1C,QAAI;AACF,UAAIL,mBAAGM,SAAH,CAAaD,QAAb,EAAuBE,MAAvB,EAAJ,EAAqC;AACnC,YAAIzC,QAAQ,GAAGkC,mBAAGmB,YAAH,CAAgBd,QAAhB,EAA0Be,QAA1B,EAAf;;AACAtD,QAAAA,QAAQ,GAAGA,QAAQ,CAACuD,OAAT,CAAiB,IAAIC,MAAJ,CAAWzB,kBAAX,EAAgC,GAAhC,CAAjB,EAAuDD,WAAvD,CAAX;;AACAI,2BAAGuB,aAAH,CAAiBlB,QAAjB,EAA2BvC,QAA3B;AACD;AACF,KAND,CAME,OAAO0D,CAAP,EAAU;AACVjE,MAAAA,KAAK,CAAE,mBAAkB8C,QAAS,eAAc7B,IAAK,GAAhD,CAAL;AACD;AACF,GAVD;AAWD;;AAEM,SAAST,uBAAT,CAAiCJ,MAAjC,EAAsE8D,WAAtE,EAA2F;AAChG,QAAM7B,WAAW,GAAGxB,UAAU,CAACT,MAAD,CAA9B;;AACA,MAAIiC,WAAW,KAAK,IAApB,EAA0B;AACxB,WAAO6B,WAAP;AACD;;AAED,QAAMC,OAAO,GAAG,IAAIJ,MAAJ,CAAY,0BAAZ,CAAhB;AACA,SAAOG,WAAW,CAACJ,OAAZ,CAAoBK,OAApB,EAA8B,kBAAiB9B,WAAY,GAA3D,CAAP;AACD;;AAEM,SAASnC,2BAAT,CACLE,MADK,EAELgE,eAFK,EAGL;AACA,QAAM/B,WAAW,GAAGxB,UAAU,CAACT,MAAD,CAA9B;;AAEA,MAAIiC,WAAJ,EAAiB;AACf+B,IAAAA,eAAe,CAACC,QAAhB,CAAyBC,CAAzB,CAA2BvD,OAA3B,GAAqCsB,WAArC;AACD,GAFD,MAEO;AACL,WAAO+B,eAAe,CAACC,QAAhB,CAAyBC,CAAzB,CAA2BvD,OAAlC;AACD;;AAED,SAAOqD,eAAP;AACD;;AAEM,eAAeG,qBAAf,CAAqC3D,WAArC,EAAkF;AAAA;;AACvF,QAAM4D,eAAe,GAAG,wCAA0B5D,WAA1B,CAAxB;;AACA,MAAI,EAAE,MAAM6B,mBAAGgC,UAAH,CAAcD,eAAd,CAAR,CAAJ,EAA6C;AAC3C,WAAO,IAAP;AACD;;AACD,QAAMN,WAAW,GAAG,MAAMzB,mBAAGiC,QAAH,CAAYF,eAAZ,EAA6B,MAA7B,CAA1B;AACA,QAAMG,WAAW,GAAGT,WAAW,CAACU,KAAZ,CAAkB,4BAAlB,CAApB,CANuF,CAOvF;;AACA,0BAAOD,WAAP,aAAOA,WAAP,uBAAOA,WAAW,CAAG,CAAH,CAAlB,yDAA2B,IAA3B;AACD","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\nimport { sync as globSync } from 'glob';\nimport path from 'path';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createAndroidManifestPlugin, withAppBuildGradle } from '../plugins/android-plugins';\nimport { withDangerousMod } from '../plugins/withDangerousMod';\nimport { directoryExistsAsync } from '../utils/modules';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { AndroidManifest } from './Manifest';\nimport { getAppBuildGradleFilePath, getProjectFilePath } from './Paths';\n\nconst debug = Debug('config-plugins:android:package');\n\nexport const withPackageManifest = createAndroidManifestPlugin(\n setPackageInAndroidManifest,\n 'withPackageManifest'\n);\n\nexport const withPackageGradle: ConfigPlugin = config => {\n return withAppBuildGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setPackageInBuildGradle(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.package',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport const withPackageRefactor: ConfigPlugin = config => {\n return withDangerousMod(config, [\n 'android',\n async config => {\n await renamePackageOnDisk(config, config.modRequest.projectRoot);\n return config;\n },\n ]);\n};\n\nexport function getPackage(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.package ?? null;\n}\n\nfunction getPackageRoot(projectRoot: string, type: 'main' | 'debug') {\n return path.join(projectRoot, 'android', 'app', 'src', type, 'java');\n}\n\nfunction getCurrentPackageName(projectRoot: string, packageRoot: string) {\n const mainApplication = getProjectFilePath(projectRoot, 'MainApplication');\n const packagePath = path.dirname(mainApplication);\n const packagePathParts = path.relative(packageRoot, packagePath).split(path.sep).filter(Boolean);\n\n return packagePathParts.join('.');\n}\n\nfunction getCurrentPackageForProjectFile(\n projectRoot: string,\n packageRoot: string,\n fileName: string,\n type: string\n) {\n const filePath = globSync(\n path.join(projectRoot, `android/app/src/${type}/java/**/${fileName}.@(java|kt)`)\n )[0];\n\n if (!filePath) {\n return null;\n }\n\n const packagePath = path.dirname(filePath);\n const packagePathParts = path.relative(packageRoot, packagePath).split(path.sep).filter(Boolean);\n\n return packagePathParts.join('.');\n}\n\nfunction getCurrentPackageNameForType(projectRoot: string, type: string): string | null {\n const packageRoot = getPackageRoot(projectRoot, type as any);\n\n if (type === 'main') {\n return getCurrentPackageName(projectRoot, packageRoot);\n }\n // debug, etc..\n return getCurrentPackageForProjectFile(projectRoot, packageRoot, '*', type);\n}\n\n// NOTE(brentvatne): this assumes that our MainApplication.java file is in the root of the package\n// this makes sense for standard react-native projects but may not apply in customized projects, so if\n// we want this to be runnable in any app we need to handle other possibilities\nexport async function renamePackageOnDisk(\n config: Pick<ExpoConfig, 'android'>,\n projectRoot: string\n) {\n const newPackageName = getPackage(config);\n if (newPackageName === null) {\n return;\n }\n\n for (const type of ['main', 'debug']) {\n await renamePackageOnDiskForType({ projectRoot, type, packageName: newPackageName });\n }\n}\n\nexport async function renamePackageOnDiskForType({\n projectRoot,\n type,\n packageName,\n}: {\n projectRoot: string;\n type: string;\n packageName: string;\n}) {\n if (!packageName) {\n return;\n }\n\n const currentPackageName = getCurrentPackageNameForType(projectRoot, type);\n debug(`Found package \"${currentPackageName}\" for type \"${type}\"`);\n if (!currentPackageName || currentPackageName === packageName) {\n return;\n }\n debug(`Refactor \"${currentPackageName}\" to \"${packageName}\" for type \"${type}\"`);\n const packageRoot = getPackageRoot(projectRoot, type as any);\n // Set up our paths\n if (!(await directoryExistsAsync(packageRoot))) {\n debug(`- skipping refactor of missing directory: ${packageRoot}`);\n return;\n }\n\n const currentPackagePath = path.join(packageRoot, ...currentPackageName.split('.'));\n const newPackagePath = path.join(packageRoot, ...packageName.split('.'));\n\n // Create the new directory\n fs.mkdirpSync(newPackagePath);\n\n // Move everything from the old directory over\n globSync('**/*', { cwd: currentPackagePath }).forEach(relativePath => {\n const filepath = path.join(currentPackagePath, relativePath);\n if (fs.lstatSync(filepath).isFile()) {\n fs.moveSync(filepath, path.join(newPackagePath, relativePath));\n } else {\n fs.mkdirpSync(filepath);\n }\n });\n\n // Remove the old directory recursively from com/old/package to com/old and com,\n // as long as the directories are empty\n const oldPathParts = currentPackageName.split('.');\n while (oldPathParts.length) {\n const pathToCheck = path.join(packageRoot, ...oldPathParts);\n try {\n const files = fs.readdirSync(pathToCheck);\n if (files.length === 0) {\n fs.rmdirSync(pathToCheck);\n }\n } finally {\n oldPathParts.pop();\n }\n }\n\n const filesToUpdate = [...globSync('**/*', { cwd: newPackagePath, absolute: true })];\n // Only update the BUCK file to match the main package name\n if (type === 'main') {\n filesToUpdate.push(path.join(projectRoot, 'android', 'app', 'BUCK'));\n }\n // Replace all occurrences of the path in the project\n filesToUpdate.forEach((filepath: string) => {\n try {\n if (fs.lstatSync(filepath).isFile()) {\n let contents = fs.readFileSync(filepath).toString();\n contents = contents.replace(new RegExp(currentPackageName!, 'g'), packageName);\n fs.writeFileSync(filepath, contents);\n }\n } catch (e) {\n debug(`Error updating \"${filepath}\" for type \"${type}\"`);\n }\n });\n}\n\nexport function setPackageInBuildGradle(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const packageName = getPackage(config);\n if (packageName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`applicationId ['\"].*['\"]`);\n return buildGradle.replace(pattern, `applicationId '${packageName}'`);\n}\n\nexport function setPackageInAndroidManifest(\n config: Pick<ExpoConfig, 'android'>,\n androidManifest: AndroidManifest\n) {\n const packageName = getPackage(config);\n\n if (packageName) {\n androidManifest.manifest.$.package = packageName;\n } else {\n delete androidManifest.manifest.$.package;\n }\n\n return androidManifest;\n}\n\nexport async function getApplicationIdAsync(projectRoot: string): Promise<string | null> {\n const buildGradlePath = getAppBuildGradleFilePath(projectRoot);\n if (!(await fs.pathExists(buildGradlePath))) {\n return null;\n }\n const buildGradle = await fs.readFile(buildGradlePath, 'utf8');\n const matchResult = buildGradle.match(/applicationId ['\"](.*)['\"]/);\n // TODO add fallback for legacy cases to read from AndroidManifest.xml\n return matchResult?.[1] ?? null;\n}\n"],"file":"Package.js"}
1
+ {"version":3,"sources":["../../src/android/Package.ts"],"names":["debug","withPackageManifest","setPackageInAndroidManifest","withPackageGradle","config","modResults","language","contents","setPackageInBuildGradle","withPackageRefactor","renamePackageOnDisk","modRequest","projectRoot","getPackage","android","package","getPackageRoot","type","path","join","getCurrentPackageName","packageRoot","mainApplication","packagePath","dirname","packagePathParts","relative","split","sep","filter","Boolean","getCurrentPackageForProjectFile","fileName","filePath","getCurrentPackageNameForType","newPackageName","renamePackageOnDiskForType","packageName","currentPackageName","currentPackagePath","newPackagePath","fs","mkdirpSync","cwd","forEach","relativePath","filepath","lstatSync","isFile","moveSync","oldPathParts","length","pathToCheck","files","readdirSync","rmdirSync","pop","filesToUpdate","absolute","push","readFileSync","toString","replace","RegExp","writeFileSync","e","buildGradle","pattern","androidManifest","manifest","$","getApplicationIdAsync","buildGradlePath","pathExists","readFile","matchResult","match"],"mappings":"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","sourcesContent":["import { ExpoConfig } from '@expo/config-types';\nimport Debug from 'debug';\nimport fs from 'fs-extra';\nimport { sync as globSync } from 'glob';\nimport path from 'path';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createAndroidManifestPlugin, withAppBuildGradle } from '../plugins/android-plugins';\nimport { withDangerousMod } from '../plugins/withDangerousMod';\nimport { directoryExistsAsync } from '../utils/modules';\nimport { addWarningAndroid } from '../utils/warnings';\nimport { AndroidManifest } from './Manifest';\nimport { getAppBuildGradleFilePath, getProjectFilePath } from './Paths';\n\nconst debug = Debug('expo:config-plugins:android:package');\n\nexport const withPackageManifest = createAndroidManifestPlugin(\n setPackageInAndroidManifest,\n 'withPackageManifest'\n);\n\nexport const withPackageGradle: ConfigPlugin = config => {\n return withAppBuildGradle(config, config => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setPackageInBuildGradle(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.package',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport const withPackageRefactor: ConfigPlugin = config => {\n return withDangerousMod(config, [\n 'android',\n async config => {\n await renamePackageOnDisk(config, config.modRequest.projectRoot);\n return config;\n },\n ]);\n};\n\nexport function getPackage(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.package ?? null;\n}\n\nfunction getPackageRoot(projectRoot: string, type: 'main' | 'debug') {\n return path.join(projectRoot, 'android', 'app', 'src', type, 'java');\n}\n\nfunction getCurrentPackageName(projectRoot: string, packageRoot: string) {\n const mainApplication = getProjectFilePath(projectRoot, 'MainApplication');\n const packagePath = path.dirname(mainApplication);\n const packagePathParts = path.relative(packageRoot, packagePath).split(path.sep).filter(Boolean);\n\n return packagePathParts.join('.');\n}\n\nfunction getCurrentPackageForProjectFile(\n projectRoot: string,\n packageRoot: string,\n fileName: string,\n type: string\n) {\n const filePath = globSync(\n path.join(projectRoot, `android/app/src/${type}/java/**/${fileName}.@(java|kt)`)\n )[0];\n\n if (!filePath) {\n return null;\n }\n\n const packagePath = path.dirname(filePath);\n const packagePathParts = path.relative(packageRoot, packagePath).split(path.sep).filter(Boolean);\n\n return packagePathParts.join('.');\n}\n\nfunction getCurrentPackageNameForType(projectRoot: string, type: string): string | null {\n const packageRoot = getPackageRoot(projectRoot, type as any);\n\n if (type === 'main') {\n return getCurrentPackageName(projectRoot, packageRoot);\n }\n // debug, etc..\n return getCurrentPackageForProjectFile(projectRoot, packageRoot, '*', type);\n}\n\n// NOTE(brentvatne): this assumes that our MainApplication.java file is in the root of the package\n// this makes sense for standard react-native projects but may not apply in customized projects, so if\n// we want this to be runnable in any app we need to handle other possibilities\nexport async function renamePackageOnDisk(\n config: Pick<ExpoConfig, 'android'>,\n projectRoot: string\n) {\n const newPackageName = getPackage(config);\n if (newPackageName === null) {\n return;\n }\n\n for (const type of ['main', 'debug']) {\n await renamePackageOnDiskForType({ projectRoot, type, packageName: newPackageName });\n }\n}\n\nexport async function renamePackageOnDiskForType({\n projectRoot,\n type,\n packageName,\n}: {\n projectRoot: string;\n type: string;\n packageName: string;\n}) {\n if (!packageName) {\n return;\n }\n\n const currentPackageName = getCurrentPackageNameForType(projectRoot, type);\n debug(`Found package \"${currentPackageName}\" for type \"${type}\"`);\n if (!currentPackageName || currentPackageName === packageName) {\n return;\n }\n debug(`Refactor \"${currentPackageName}\" to \"${packageName}\" for type \"${type}\"`);\n const packageRoot = getPackageRoot(projectRoot, type as any);\n // Set up our paths\n if (!(await directoryExistsAsync(packageRoot))) {\n debug(`- skipping refactor of missing directory: ${packageRoot}`);\n return;\n }\n\n const currentPackagePath = path.join(packageRoot, ...currentPackageName.split('.'));\n const newPackagePath = path.join(packageRoot, ...packageName.split('.'));\n\n // Create the new directory\n fs.mkdirpSync(newPackagePath);\n\n // Move everything from the old directory over\n globSync('**/*', { cwd: currentPackagePath }).forEach(relativePath => {\n const filepath = path.join(currentPackagePath, relativePath);\n if (fs.lstatSync(filepath).isFile()) {\n fs.moveSync(filepath, path.join(newPackagePath, relativePath));\n } else {\n fs.mkdirpSync(filepath);\n }\n });\n\n // Remove the old directory recursively from com/old/package to com/old and com,\n // as long as the directories are empty\n const oldPathParts = currentPackageName.split('.');\n while (oldPathParts.length) {\n const pathToCheck = path.join(packageRoot, ...oldPathParts);\n try {\n const files = fs.readdirSync(pathToCheck);\n if (files.length === 0) {\n fs.rmdirSync(pathToCheck);\n }\n } finally {\n oldPathParts.pop();\n }\n }\n\n const filesToUpdate = [...globSync('**/*', { cwd: newPackagePath, absolute: true })];\n // Only update the BUCK file to match the main package name\n if (type === 'main') {\n filesToUpdate.push(path.join(projectRoot, 'android', 'app', 'BUCK'));\n }\n // Replace all occurrences of the path in the project\n filesToUpdate.forEach((filepath: string) => {\n try {\n if (fs.lstatSync(filepath).isFile()) {\n let contents = fs.readFileSync(filepath).toString();\n contents = contents.replace(new RegExp(currentPackageName!, 'g'), packageName);\n fs.writeFileSync(filepath, contents);\n }\n } catch (e) {\n debug(`Error updating \"${filepath}\" for type \"${type}\"`);\n }\n });\n}\n\nexport function setPackageInBuildGradle(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const packageName = getPackage(config);\n if (packageName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`applicationId ['\"].*['\"]`);\n return buildGradle.replace(pattern, `applicationId '${packageName}'`);\n}\n\nexport function setPackageInAndroidManifest(\n config: Pick<ExpoConfig, 'android'>,\n androidManifest: AndroidManifest\n) {\n const packageName = getPackage(config);\n\n if (packageName) {\n androidManifest.manifest.$.package = packageName;\n } else {\n delete androidManifest.manifest.$.package;\n }\n\n return androidManifest;\n}\n\nexport async function getApplicationIdAsync(projectRoot: string): Promise<string | null> {\n const buildGradlePath = getAppBuildGradleFilePath(projectRoot);\n if (!(await fs.pathExists(buildGradlePath))) {\n return null;\n }\n const buildGradle = await fs.readFile(buildGradlePath, 'utf8');\n const matchResult = buildGradle.match(/applicationId ['\"](.*)['\"]/);\n // TODO add fallback for legacy cases to read from AndroidManifest.xml\n return matchResult?.[1] ?? null;\n}\n"],"file":"Package.js"}
@@ -3,21 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getProjectFilePath = getProjectFilePath;
6
+ exports.getAndroidManifestAsync = getAndroidManifestAsync;
7
+ exports.getAppBuildGradleAsync = getAppBuildGradleAsync;
8
+ exports.getAppBuildGradleFilePath = getAppBuildGradleFilePath;
7
9
  exports.getFileInfo = getFileInfo;
8
- exports.getMainApplicationAsync = getMainApplicationAsync;
9
- exports.getMainActivityAsync = getMainActivityAsync;
10
10
  exports.getGradleFilePath = getGradleFilePath;
11
- exports.getProjectBuildGradleFilePath = getProjectBuildGradleFilePath;
11
+ exports.getMainActivityAsync = getMainActivityAsync;
12
+ exports.getMainApplicationAsync = getMainApplicationAsync;
12
13
  exports.getProjectBuildGradleAsync = getProjectBuildGradleAsync;
13
- exports.getSettingsGradleFilePath = getSettingsGradleFilePath;
14
- exports.getSettingsGradleAsync = getSettingsGradleAsync;
15
- exports.getAppBuildGradleFilePath = getAppBuildGradleFilePath;
16
- exports.getAppBuildGradleAsync = getAppBuildGradleAsync;
14
+ exports.getProjectBuildGradleFilePath = getProjectBuildGradleFilePath;
15
+ exports.getProjectFilePath = getProjectFilePath;
17
16
  exports.getProjectPathOrThrowAsync = getProjectPathOrThrowAsync;
18
- exports.getAndroidManifestAsync = getAndroidManifestAsync;
19
17
  exports.getResourceFolderAsync = getResourceFolderAsync;
20
18
  exports.getResourceXMLPathAsync = getResourceXMLPathAsync;
19
+ exports.getSettingsGradleAsync = getSettingsGradleAsync;
20
+ exports.getSettingsGradleFilePath = getSettingsGradleFilePath;
21
21
 
22
22
  function _assert() {
23
23
  const data = _interopRequireDefault(require("assert"));
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getAndroidPermissions = getAndroidPermissions;
7
- exports.setAndroidPermissions = setAndroidPermissions;
8
- exports.isPermissionAlreadyRequested = isPermissionAlreadyRequested;
9
- exports.addPermissionToManifest = addPermissionToManifest;
10
- exports.removePermissions = removePermissions;
11
6
  exports.addPermission = addPermission;
12
- exports.ensurePermissions = ensurePermissions;
7
+ exports.addPermissionToManifest = addPermissionToManifest;
13
8
  exports.ensurePermission = ensurePermission;
14
9
  exports.ensurePermissionNameFormat = ensurePermissionNameFormat;
10
+ exports.ensurePermissions = ensurePermissions;
11
+ exports.getAndroidPermissions = getAndroidPermissions;
15
12
  exports.getPermissions = getPermissions;
13
+ exports.isPermissionAlreadyRequested = isPermissionAlreadyRequested;
14
+ exports.removePermissions = removePermissions;
15
+ exports.setAndroidPermissions = setAndroidPermissions;
16
16
  exports.withPermissions = void 0;
17
17
 
18
18
  function _androidPlugins() {
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.readResourcesXMLAsync = readResourcesXMLAsync;
7
- exports.ensureDefaultResourceXML = ensureDefaultResourceXML;
8
- exports.buildResourceItem = buildResourceItem;
9
6
  exports.buildResourceGroup = buildResourceGroup;
7
+ exports.buildResourceItem = buildResourceItem;
8
+ exports.ensureDefaultResourceXML = ensureDefaultResourceXML;
10
9
  exports.findResourceGroup = findResourceGroup;
11
- exports.getResourceItemsAsObject = getResourceItemsAsObject;
12
- exports.getObjectAsResourceItems = getObjectAsResourceItems;
13
10
  exports.getObjectAsResourceGroup = getObjectAsResourceGroup;
11
+ exports.getObjectAsResourceItems = getObjectAsResourceItems;
12
+ exports.getResourceItemsAsObject = getResourceItemsAsObject;
13
+ exports.readResourcesXMLAsync = readResourcesXMLAsync;
14
14
 
15
15
  function _XML() {
16
16
  const data = require("../utils/XML");
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.appendScheme = appendScheme;
7
+ exports.ensureManifestHasValidIntentFilter = ensureManifestHasValidIntentFilter;
6
8
  exports.getScheme = getScheme;
7
- exports.setScheme = setScheme;
8
9
  exports.getSchemesFromManifest = getSchemesFromManifest;
9
- exports.ensureManifestHasValidIntentFilter = ensureManifestHasValidIntentFilter;
10
10
  exports.hasScheme = hasScheme;
11
- exports.appendScheme = appendScheme;
12
11
  exports.removeScheme = removeScheme;
12
+ exports.setScheme = setScheme;
13
13
  exports.withScheme = void 0;
14
14
 
15
15
  function _androidPlugins() {
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setStatusBarColors = setStatusBarColors;
7
- exports.setStatusBarStyles = setStatusBarStyles;
8
6
  exports.getStatusBarColor = getStatusBarColor;
9
- exports.getStatusBarTranslucent = getStatusBarTranslucent;
10
7
  exports.getStatusBarStyle = getStatusBarStyle;
8
+ exports.getStatusBarTranslucent = getStatusBarTranslucent;
9
+ exports.setStatusBarColors = setStatusBarColors;
10
+ exports.setStatusBarStyles = setStatusBarStyles;
11
11
  exports.withStatusBar = void 0;
12
12
 
13
13
  function _assert() {
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getProjectStringsXMLPathAsync = getProjectStringsXMLPathAsync;
7
- exports.setStringItem = setStringItem;
8
7
  exports.removeStringItem = removeStringItem;
8
+ exports.setStringItem = setStringItem;
9
9
 
10
10
  function _Paths() {
11
11
  const data = require("./Paths");
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.readStylesXMLAsync = readStylesXMLAsync;
6
+ exports.assignStylesValue = assignStylesValue;
7
+ exports.getAppThemeLightNoActionBarGroup = getAppThemeLightNoActionBarGroup;
7
8
  exports.getProjectStylesXMLPathAsync = getProjectStylesXMLPathAsync;
8
9
  exports.getStyleParent = getStyleParent;
10
+ exports.getStylesGroupAsObject = getStylesGroupAsObject;
9
11
  exports.getStylesItem = getStylesItem;
10
- exports.setStylesItem = setStylesItem;
12
+ exports.readStylesXMLAsync = readStylesXMLAsync;
11
13
  exports.removeStylesItem = removeStylesItem;
12
- exports.getAppThemeLightNoActionBarGroup = getAppThemeLightNoActionBarGroup;
13
- exports.assignStylesValue = assignStylesValue;
14
- exports.getStylesGroupAsObject = getStylesGroupAsObject;
14
+ exports.setStylesItem = setStylesItem;
15
15
 
16
16
  function _Paths() {
17
17
  const data = require("./Paths");
@@ -14,11 +14,6 @@ export declare enum Config {
14
14
  export declare const withUpdates: ConfigPlugin<{
15
15
  expoUsername: string | null;
16
16
  }>;
17
- /**
18
- * runtime version maybe null in projects using classic updates. In that
19
- * case we use SDK version
20
- */
21
- export declare function getRuntimeVersionNullable(config: Pick<ExpoConfigUpdates, 'runtimeVersion'>): string | null;
22
17
  export declare function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null;
23
18
  export declare function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, 'updates'>): boolean;
24
19
  export declare function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number;
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getRuntimeVersionNullable = getRuntimeVersionNullable;
6
+ exports.Config = void 0;
7
+ exports.areVersionsSynced = areVersionsSynced;
8
+ exports.ensureBuildGradleContainsConfigurationScript = ensureBuildGradleContainsConfigurationScript;
9
+ exports.formatApplyLineForBuildGradle = formatApplyLineForBuildGradle;
7
10
  exports.getSDKVersion = getSDKVersion;
11
+ exports.getUpdatesCheckOnLaunch = getUpdatesCheckOnLaunch;
8
12
  exports.getUpdatesEnabled = getUpdatesEnabled;
9
13
  exports.getUpdatesTimeout = getUpdatesTimeout;
10
- exports.getUpdatesCheckOnLaunch = getUpdatesCheckOnLaunch;
11
- exports.setUpdatesConfig = setUpdatesConfig;
12
- exports.setVersionsConfig = setVersionsConfig;
13
- exports.ensureBuildGradleContainsConfigurationScript = ensureBuildGradleContainsConfigurationScript;
14
- exports.formatApplyLineForBuildGradle = formatApplyLineForBuildGradle;
15
14
  exports.isBuildGradleConfigured = isBuildGradleConfigured;
16
15
  exports.isMainApplicationMetaDataSet = isMainApplicationMetaDataSet;
17
16
  exports.isMainApplicationMetaDataSynced = isMainApplicationMetaDataSynced;
18
- exports.areVersionsSynced = areVersionsSynced;
19
- exports.withUpdates = exports.Config = void 0;
17
+ exports.setUpdatesConfig = setUpdatesConfig;
18
+ exports.setVersionsConfig = setVersionsConfig;
19
+ exports.withUpdates = void 0;
20
20
 
21
21
  function _path() {
22
22
  const data = _interopRequireDefault(require("path"));
@@ -93,22 +93,9 @@ const withUpdates = (config, {
93
93
  return config;
94
94
  });
95
95
  };
96
- /**
97
- * runtime version maybe null in projects using classic updates. In that
98
- * case we use SDK version
99
- */
100
-
101
96
 
102
97
  exports.withUpdates = withUpdates;
103
98
 
104
- function getRuntimeVersionNullable(config) {
105
- try {
106
- return (0, _Updates().getRuntimeVersion)(config, 'android');
107
- } catch (e) {
108
- return null;
109
- }
110
- }
111
-
112
99
  function getSDKVersion(config) {
113
100
  return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;
114
101
  }
@@ -155,13 +142,17 @@ function setUpdatesConfig(config, androidManifest, username) {
155
142
 
156
143
  function setVersionsConfig(config, androidManifest) {
157
144
  const mainApplication = (0, _Manifest().getMainApplicationOrThrow)(androidManifest);
158
- const runtimeVersion = getRuntimeVersionNullable(config);
145
+ const runtimeVersion = (0, _Updates().getRuntimeVersionNullable)(config, 'android');
159
146
  const sdkVersion = getSDKVersion(config);
160
147
 
161
148
  if (runtimeVersion) {
162
149
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.SDK_VERSION);
163
150
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.RUNTIME_VERSION, runtimeVersion);
164
151
  } else if (sdkVersion) {
152
+ /**
153
+ * runtime version maybe null in projects using classic updates. In that
154
+ * case we use SDK version
155
+ */
165
156
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.RUNTIME_VERSION);
166
157
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.SDK_VERSION, sdkVersion);
167
158
  } else {
@@ -221,7 +212,7 @@ function isMainApplicationMetaDataSynced(config, androidManifest, username) {
221
212
  }
222
213
 
223
214
  function areVersionsSynced(config, androidManifest) {
224
- const expectedRuntimeVersion = getRuntimeVersionNullable(config);
215
+ const expectedRuntimeVersion = (0, _Updates().getRuntimeVersionNullable)(config, 'android');
225
216
  const expectedSdkVersion = getSDKVersion(config);
226
217
  const currentRuntimeVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.RUNTIME_VERSION);
227
218
  const currentSdkVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.SDK_VERSION);