@expo/config-plugins 5.0.3 → 6.0.0

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 (190) hide show
  1. package/build/Plugin.types.d.ts +7 -7
  2. package/build/Plugin.types.js +0 -9
  3. package/build/Plugin.types.js.map +1 -1
  4. package/build/android/AllowBackup.js +0 -15
  5. package/build/android/AllowBackup.js.map +1 -1
  6. package/build/android/BuildProperties.js +2 -16
  7. package/build/android/BuildProperties.js.map +1 -1
  8. package/build/android/Colors.js +3 -25
  9. package/build/android/Colors.js.map +1 -1
  10. package/build/android/EasBuild.js +2 -22
  11. package/build/android/EasBuild.js.map +1 -1
  12. package/build/android/EasBuildGradleScript.js.map +1 -1
  13. package/build/android/GoogleMapsApiKey.js +0 -12
  14. package/build/android/GoogleMapsApiKey.js.map +1 -1
  15. package/build/android/GoogleServices.js +10 -48
  16. package/build/android/GoogleServices.js.map +1 -1
  17. package/build/android/IntentFilters.d.ts +1 -1
  18. package/build/android/IntentFilters.js +8 -24
  19. package/build/android/IntentFilters.js.map +1 -1
  20. package/build/android/Manifest.d.ts +19 -19
  21. package/build/android/Manifest.js +7 -66
  22. package/build/android/Manifest.js.map +1 -1
  23. package/build/android/Name.js +6 -27
  24. package/build/android/Name.js.map +1 -1
  25. package/build/android/Orientation.js +2 -12
  26. package/build/android/Orientation.js.map +1 -1
  27. package/build/android/Package.js +26 -111
  28. package/build/android/Package.js.map +1 -1
  29. package/build/android/Paths.d.ts +2 -2
  30. package/build/android/Paths.js +0 -47
  31. package/build/android/Paths.js.map +1 -1
  32. package/build/android/Permissions.js +8 -52
  33. package/build/android/Permissions.js.map +1 -1
  34. package/build/android/PrimaryColor.js +0 -18
  35. package/build/android/PrimaryColor.js.map +1 -1
  36. package/build/android/Properties.d.ts +1 -1
  37. package/build/android/Properties.js +0 -9
  38. package/build/android/Properties.js.map +1 -1
  39. package/build/android/Resources.d.ts +4 -4
  40. package/build/android/Resources.js +9 -29
  41. package/build/android/Resources.js.map +1 -1
  42. package/build/android/Scheme.d.ts +1 -1
  43. package/build/android/Scheme.js +13 -66
  44. package/build/android/Scheme.js.map +1 -1
  45. package/build/android/StatusBar.js +5 -33
  46. package/build/android/StatusBar.js.map +1 -1
  47. package/build/android/Strings.js +0 -14
  48. package/build/android/Strings.js.map +1 -1
  49. package/build/android/Styles.js +7 -34
  50. package/build/android/Styles.js.map +1 -1
  51. package/build/android/Updates.d.ts +2 -0
  52. package/build/android/Updates.js +50 -47
  53. package/build/android/Updates.js.map +1 -1
  54. package/build/android/Version.js +3 -29
  55. package/build/android/Version.js.map +1 -1
  56. package/build/android/WindowSoftInputMode.js +0 -14
  57. package/build/android/WindowSoftInputMode.js.map +1 -1
  58. package/build/android/codeMod.js +6 -22
  59. package/build/android/codeMod.js.map +1 -1
  60. package/build/android/index.js +0 -94
  61. package/build/android/index.js.map +1 -1
  62. package/build/index.js +2 -65
  63. package/build/index.js.map +1 -1
  64. package/build/ios/Bitcode.d.ts +1 -1
  65. package/build/ios/Bitcode.js +8 -28
  66. package/build/ios/Bitcode.js.map +1 -1
  67. package/build/ios/BuildProperties.js +2 -14
  68. package/build/ios/BuildProperties.js.map +1 -1
  69. package/build/ios/BuildScheme.js +2 -34
  70. package/build/ios/BuildScheme.js.map +1 -1
  71. package/build/ios/BundleIdentifier.js +13 -72
  72. package/build/ios/BundleIdentifier.js.map +1 -1
  73. package/build/ios/DeviceFamily.js +6 -24
  74. package/build/ios/DeviceFamily.js.map +1 -1
  75. package/build/ios/Entitlements.js +4 -45
  76. package/build/ios/Entitlements.js.map +1 -1
  77. package/build/ios/Google.d.ts +2 -2
  78. package/build/ios/Google.js +11 -66
  79. package/build/ios/Google.js.map +1 -1
  80. package/build/ios/IosConfig.types.d.ts +6 -11
  81. package/build/ios/IosConfig.types.js.map +1 -1
  82. package/build/ios/Locales.d.ts +3 -3
  83. package/build/ios/Locales.js +12 -43
  84. package/build/ios/Locales.js.map +1 -1
  85. package/build/ios/Maps.js +15 -53
  86. package/build/ios/Maps.js.map +1 -1
  87. package/build/ios/Name.js +7 -31
  88. package/build/ios/Name.js.map +1 -1
  89. package/build/ios/Orientation.js +2 -10
  90. package/build/ios/Orientation.js.map +1 -1
  91. package/build/ios/Paths.d.ts +2 -2
  92. package/build/ios/Paths.js +8 -73
  93. package/build/ios/Paths.js.map +1 -1
  94. package/build/ios/Permissions.js +1 -16
  95. package/build/ios/Permissions.js.map +1 -1
  96. package/build/ios/ProvisioningProfile.d.ts +1 -1
  97. package/build/ios/ProvisioningProfile.js +0 -18
  98. package/build/ios/ProvisioningProfile.js.map +1 -1
  99. package/build/ios/RequiresFullScreen.js +19 -31
  100. package/build/ios/RequiresFullScreen.js.map +1 -1
  101. package/build/ios/Scheme.js +12 -34
  102. package/build/ios/Scheme.js.map +1 -1
  103. package/build/ios/Swift.js +16 -50
  104. package/build/ios/Swift.js.map +1 -1
  105. package/build/ios/Target.js +0 -30
  106. package/build/ios/Target.js.map +1 -1
  107. package/build/ios/Updates.js +10 -49
  108. package/build/ios/Updates.js.map +1 -1
  109. package/build/ios/UsesNonExemptEncryption.js +4 -10
  110. package/build/ios/UsesNonExemptEncryption.js.map +1 -1
  111. package/build/ios/Version.js +4 -11
  112. package/build/ios/Version.js.map +1 -1
  113. package/build/ios/XcodeProjectFile.js +5 -23
  114. package/build/ios/XcodeProjectFile.js.map +1 -1
  115. package/build/ios/codeMod.js +19 -60
  116. package/build/ios/codeMod.js.map +1 -1
  117. package/build/ios/index.js +0 -97
  118. package/build/ios/index.js.map +1 -1
  119. package/build/ios/utils/Xcodeproj.d.ts +6 -6
  120. package/build/ios/utils/Xcodeproj.js +15 -101
  121. package/build/ios/utils/Xcodeproj.js.map +1 -1
  122. package/build/ios/utils/getInfoPlistPath.js +2 -15
  123. package/build/ios/utils/getInfoPlistPath.js.map +1 -1
  124. package/build/ios/utils/string.js +0 -1
  125. package/build/ios/utils/string.js.map +1 -1
  126. package/build/plugins/android-plugins.d.ts +2 -2
  127. package/build/plugins/android-plugins.js +11 -42
  128. package/build/plugins/android-plugins.js.map +1 -1
  129. package/build/plugins/createBaseMod.d.ts +3 -3
  130. package/build/plugins/createBaseMod.js +8 -25
  131. package/build/plugins/createBaseMod.js.map +1 -1
  132. package/build/plugins/ios-plugins.d.ts +2 -2
  133. package/build/plugins/ios-plugins.js +8 -48
  134. package/build/plugins/ios-plugins.js.map +1 -1
  135. package/build/plugins/mod-compiler.js +21 -72
  136. package/build/plugins/mod-compiler.js.map +1 -1
  137. package/build/plugins/withAndroidBaseMods.d.ts +1 -1
  138. package/build/plugins/withAndroidBaseMods.js +4 -89
  139. package/build/plugins/withAndroidBaseMods.js.map +1 -1
  140. package/build/plugins/withDangerousMod.js +0 -5
  141. package/build/plugins/withDangerousMod.js.map +1 -1
  142. package/build/plugins/withIosBaseMods.d.ts +1 -1
  143. package/build/plugins/withIosBaseMods.js +26 -118
  144. package/build/plugins/withIosBaseMods.js.map +1 -1
  145. package/build/plugins/withMod.d.ts +1 -1
  146. package/build/plugins/withMod.js +24 -59
  147. package/build/plugins/withMod.js.map +1 -1
  148. package/build/plugins/withPlugins.js +0 -9
  149. package/build/plugins/withPlugins.js.map +1 -1
  150. package/build/plugins/withRunOnce.js +3 -9
  151. package/build/plugins/withRunOnce.js.map +1 -1
  152. package/build/plugins/withStaticPlugin.js +21 -43
  153. package/build/plugins/withStaticPlugin.js.map +1 -1
  154. package/build/utils/BuildProperties.types.d.ts +2 -2
  155. package/build/utils/BuildProperties.types.js.map +1 -1
  156. package/build/utils/Updates.d.ts +3 -1
  157. package/build/utils/Updates.js +18 -77
  158. package/build/utils/Updates.js.map +1 -1
  159. package/build/utils/XML.d.ts +1 -1
  160. package/build/utils/XML.js +7 -44
  161. package/build/utils/XML.js.map +1 -1
  162. package/build/utils/commonCodeMod.js +2 -10
  163. package/build/utils/commonCodeMod.js.map +1 -1
  164. package/build/utils/errors.d.ts +1 -1
  165. package/build/utils/errors.js +3 -11
  166. package/build/utils/errors.js.map +1 -1
  167. package/build/utils/fs.js +1 -12
  168. package/build/utils/fs.js.map +1 -1
  169. package/build/utils/generateCode.d.ts +1 -1
  170. package/build/utils/generateCode.js +8 -25
  171. package/build/utils/generateCode.js.map +1 -1
  172. package/build/utils/history.d.ts +1 -1
  173. package/build/utils/history.js +0 -6
  174. package/build/utils/history.js.map +1 -1
  175. package/build/utils/matchBrackets.d.ts +3 -3
  176. package/build/utils/matchBrackets.js +2 -17
  177. package/build/utils/matchBrackets.js.map +1 -1
  178. package/build/utils/modules.js +0 -10
  179. package/build/utils/modules.js.map +1 -1
  180. package/build/utils/obj.js +0 -4
  181. package/build/utils/obj.js.map +1 -1
  182. package/build/utils/plugin-resolver.js +25 -69
  183. package/build/utils/plugin-resolver.js.map +1 -1
  184. package/build/utils/sortObject.js +4 -10
  185. package/build/utils/sortObject.js.map +1 -1
  186. package/build/utils/versions.js +0 -10
  187. package/build/utils/versions.js.map +1 -1
  188. package/build/utils/warnings.js +1 -9
  189. package/build/utils/warnings.js.map +1 -1
  190. package/package.json +5 -5
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Config = void 0;
7
+ exports.applyRuntimeVersionFromConfig = applyRuntimeVersionFromConfig;
7
8
  exports.areVersionsSynced = areVersionsSynced;
8
9
  exports.ensureBuildGradleContainsConfigurationScript = ensureBuildGradleContainsConfigurationScript;
9
10
  exports.formatApplyLineForBuildGradle = formatApplyLineForBuildGradle;
@@ -13,63 +14,66 @@ exports.isMainApplicationMetaDataSynced = isMainApplicationMetaDataSynced;
13
14
  exports.setUpdatesConfig = setUpdatesConfig;
14
15
  exports.setVersionsConfig = setVersionsConfig;
15
16
  exports.withUpdates = void 0;
16
-
17
17
  function _path() {
18
18
  const data = _interopRequireDefault(require("path"));
19
-
20
19
  _path = function () {
21
20
  return data;
22
21
  };
23
-
24
22
  return data;
25
23
  }
26
-
27
24
  function _resolveFrom() {
28
25
  const data = _interopRequireDefault(require("resolve-from"));
29
-
30
26
  _resolveFrom = function () {
31
27
  return data;
32
28
  };
33
-
34
29
  return data;
35
30
  }
36
-
37
31
  function _androidPlugins() {
38
32
  const data = require("../plugins/android-plugins");
39
-
40
33
  _androidPlugins = function () {
41
34
  return data;
42
35
  };
43
-
44
36
  return data;
45
37
  }
46
-
38
+ function _withPlugins() {
39
+ const data = require("../plugins/withPlugins");
40
+ _withPlugins = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
47
45
  function _Updates() {
48
46
  const data = require("../utils/Updates");
49
-
50
47
  _Updates = function () {
51
48
  return data;
52
49
  };
53
-
54
50
  return data;
55
51
  }
56
-
57
52
  function _Manifest() {
58
53
  const data = require("./Manifest");
59
-
60
54
  _Manifest = function () {
61
55
  return data;
62
56
  };
63
-
64
57
  return data;
65
58
  }
66
-
59
+ function _Resources() {
60
+ const data = require("./Resources");
61
+ _Resources = function () {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
66
+ function _Strings() {
67
+ const data = require("./Strings");
68
+ _Strings = function () {
69
+ return data;
70
+ };
71
+ return data;
72
+ }
67
73
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
68
-
69
74
  const CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';
70
75
  let Config;
71
76
  exports.Config = Config;
72
-
73
77
  (function (Config) {
74
78
  Config["ENABLED"] = "expo.modules.updates.ENABLED";
75
79
  Config["CHECK_ON_LAUNCH"] = "expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH";
@@ -82,9 +86,16 @@ exports.Config = Config;
82
86
  Config["CODE_SIGNING_CERTIFICATE"] = "expo.modules.updates.CODE_SIGNING_CERTIFICATE";
83
87
  Config["CODE_SIGNING_METADATA"] = "expo.modules.updates.CODE_SIGNING_METADATA";
84
88
  })(Config || (exports.Config = Config = {}));
85
-
86
89
  const withUpdates = (config, {
87
90
  expoUsername
91
+ }) => {
92
+ return (0, _withPlugins().withPlugins)(config, [[withUpdatesManifest, {
93
+ expoUsername
94
+ }], withRuntimeVersionResource]);
95
+ };
96
+ exports.withUpdates = withUpdates;
97
+ const withUpdatesManifest = (config, {
98
+ expoUsername
88
99
  }) => {
89
100
  return (0, _androidPlugins().withAndroidManifest)(config, config => {
90
101
  const projectRoot = config.modRequest.projectRoot;
@@ -93,54 +104,58 @@ const withUpdates = (config, {
93
104
  return config;
94
105
  });
95
106
  };
96
-
97
- exports.withUpdates = withUpdates;
98
-
107
+ const withRuntimeVersionResource = (0, _androidPlugins().createStringsXmlPlugin)(applyRuntimeVersionFromConfig, 'withRuntimeVersionResource');
108
+ function applyRuntimeVersionFromConfig(config, stringsJSON) {
109
+ const runtimeVersion = (0, _Updates().getRuntimeVersionNullable)(config, 'android');
110
+ if (runtimeVersion) {
111
+ return (0, _Strings().setStringItem)([(0, _Resources().buildResourceItem)({
112
+ name: 'expo_runtime_version',
113
+ value: runtimeVersion
114
+ })], stringsJSON);
115
+ }
116
+ return (0, _Strings().removeStringItem)('expo_runtime_version', stringsJSON);
117
+ }
99
118
  function setUpdatesConfig(projectRoot, config, androidManifest, username, expoUpdatesPackageVersion) {
100
119
  const mainApplication = (0, _Manifest().getMainApplicationOrThrow)(androidManifest);
101
120
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.ENABLED, String((0, _Updates().getUpdatesEnabled)(config)));
102
121
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.CHECK_ON_LAUNCH, (0, _Updates().getUpdatesCheckOnLaunch)(config, expoUpdatesPackageVersion));
103
122
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.LAUNCH_WAIT_MS, String((0, _Updates().getUpdatesTimeout)(config)));
104
123
  const updateUrl = (0, _Updates().getUpdateUrl)(config, username);
105
-
106
124
  if (updateUrl) {
107
125
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.UPDATE_URL, updateUrl);
108
126
  } else {
109
127
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.UPDATE_URL);
110
128
  }
111
-
112
129
  const codeSigningCertificate = (0, _Updates().getUpdatesCodeSigningCertificate)(projectRoot, config);
113
-
114
130
  if (codeSigningCertificate) {
115
131
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.CODE_SIGNING_CERTIFICATE, codeSigningCertificate);
116
132
  } else {
117
133
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.CODE_SIGNING_CERTIFICATE);
118
134
  }
119
-
120
135
  const codeSigningMetadata = (0, _Updates().getUpdatesCodeSigningMetadataStringified)(config);
121
-
122
136
  if (codeSigningMetadata) {
123
137
  (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.CODE_SIGNING_METADATA, codeSigningMetadata);
124
138
  } else {
125
139
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.CODE_SIGNING_METADATA);
126
140
  }
127
-
141
+ const requestHeaders = (0, _Updates().getUpdatesRequestHeadersStringified)(config);
142
+ if (requestHeaders) {
143
+ (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY, requestHeaders);
144
+ } else {
145
+ (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY);
146
+ }
128
147
  return setVersionsConfig(config, androidManifest);
129
148
  }
130
-
131
149
  function setVersionsConfig(config, androidManifest) {
132
150
  const mainApplication = (0, _Manifest().getMainApplicationOrThrow)(androidManifest);
133
151
  const runtimeVersion = (0, _Updates().getRuntimeVersionNullable)(config, 'android');
134
-
135
152
  if (!runtimeVersion && (0, _Manifest().findMetaDataItem)(mainApplication, Config.RUNTIME_VERSION) > -1) {
136
153
  throw new Error('A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.');
137
154
  }
138
-
139
155
  const sdkVersion = (0, _Updates().getSDKVersion)(config);
140
-
141
156
  if (runtimeVersion) {
142
157
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.SDK_VERSION);
143
- (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.RUNTIME_VERSION, runtimeVersion);
158
+ (0, _Manifest().addMetaDataItemToMainApplication)(mainApplication, Config.RUNTIME_VERSION, '@string/expo_runtime_version');
144
159
  } else if (sdkVersion) {
145
160
  /**
146
161
  * runtime version maybe null in projects using classic updates. In that
@@ -152,64 +167,52 @@ function setVersionsConfig(config, androidManifest) {
152
167
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.RUNTIME_VERSION);
153
168
  (0, _Manifest().removeMetaDataItemFromMainApplication)(mainApplication, Config.SDK_VERSION);
154
169
  }
155
-
156
170
  return androidManifest;
157
171
  }
158
-
159
172
  function ensureBuildGradleContainsConfigurationScript(projectRoot, buildGradleContents) {
160
173
  if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {
161
174
  let cleanedUpBuildGradleContents;
162
175
  const isBuildGradleMisconfigured = buildGradleContents.split('\n').some(line => line.includes(CREATE_MANIFEST_ANDROID_PATH));
163
-
164
176
  if (isBuildGradleMisconfigured) {
165
177
  cleanedUpBuildGradleContents = buildGradleContents.replace(new RegExp(`(\n// Integration with Expo updates)?\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\n`), '');
166
178
  } else {
167
179
  cleanedUpBuildGradleContents = buildGradleContents;
168
180
  }
169
-
170
181
  const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);
171
182
  return `${cleanedUpBuildGradleContents}\n// Integration with Expo updates\n${gradleScriptApply}\n`;
172
183
  } else {
173
184
  return buildGradleContents;
174
185
  }
175
186
  }
176
-
177
187
  function formatApplyLineForBuildGradle(projectRoot) {
178
188
  const updatesGradleScriptPath = _resolveFrom().default.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);
179
-
180
189
  if (!updatesGradleScriptPath) {
181
190
  throw new Error("Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.");
182
191
  }
183
-
184
192
  const relativePath = _path().default.relative(_path().default.join(projectRoot, 'android', 'app'), updatesGradleScriptPath);
185
-
186
193
  const posixPath = process.platform === 'win32' ? relativePath.replace(/\\/g, '/') : relativePath;
187
194
  return `apply from: "${posixPath}"`;
188
195
  }
189
-
190
196
  function isBuildGradleConfigured(projectRoot, buildGradleContents) {
191
197
  const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);
192
- return buildGradleContents.replace(/\r\n/g, '\n').split('\n') // Check for both single and double quotes
198
+ return buildGradleContents.replace(/\r\n/g, '\n').split('\n')
199
+ // Check for both single and double quotes
193
200
  .some(line => line === androidBuildScript || line === androidBuildScript.replace(/"/g, "'"));
194
201
  }
195
-
196
202
  function isMainApplicationMetaDataSet(androidManifest) {
197
203
  const updateUrl = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.UPDATE_URL);
198
204
  const runtimeVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.RUNTIME_VERSION);
199
205
  const sdkVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.SDK_VERSION);
200
206
  return Boolean(updateUrl && (sdkVersion || runtimeVersion));
201
207
  }
202
-
203
208
  function isMainApplicationMetaDataSynced(projectRoot, config, androidManifest, username) {
204
209
  return (0, _Updates().getUpdateUrl)(config, username) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.UPDATE_URL) && String((0, _Updates().getUpdatesEnabled)(config)) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.ENABLED) && String((0, _Updates().getUpdatesTimeout)(config)) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.LAUNCH_WAIT_MS) && (0, _Updates().getUpdatesCheckOnLaunch)(config) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.CHECK_ON_LAUNCH) && (0, _Updates().getUpdatesCodeSigningCertificate)(projectRoot, config) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.CODE_SIGNING_CERTIFICATE) && (0, _Updates().getUpdatesCodeSigningMetadataStringified)(config) === (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.CODE_SIGNING_METADATA) && areVersionsSynced(config, androidManifest);
205
210
  }
206
-
207
211
  function areVersionsSynced(config, androidManifest) {
208
212
  const expectedRuntimeVersion = (0, _Updates().getRuntimeVersionNullable)(config, 'android');
209
213
  const expectedSdkVersion = (0, _Updates().getSDKVersion)(config);
210
214
  const currentRuntimeVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.RUNTIME_VERSION);
211
215
  const currentSdkVersion = (0, _Manifest().getMainApplicationMetaDataValue)(androidManifest, Config.SDK_VERSION);
212
-
213
216
  if (expectedRuntimeVersion !== null) {
214
217
  return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;
215
218
  } else if (expectedSdkVersion !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"Updates.js","names":["CREATE_MANIFEST_ANDROID_PATH","Config","withUpdates","config","expoUsername","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfig","androidManifest","username","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","CHECK_ON_LAUNCH","getUpdatesCheckOnLaunch","LAUNCH_WAIT_MS","getUpdatesTimeout","updateUrl","getUpdateUrl","UPDATE_URL","removeMetaDataItemFromMainApplication","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","setVersionsConfig","runtimeVersion","getRuntimeVersionNullable","findMetaDataItem","RUNTIME_VERSION","Error","sdkVersion","getSDKVersion","SDK_VERSION","ensureBuildGradleContainsConfigurationScript","buildGradleContents","isBuildGradleConfigured","cleanedUpBuildGradleContents","isBuildGradleMisconfigured","split","some","line","includes","replace","RegExp","gradleScriptApply","formatApplyLineForBuildGradle","updatesGradleScriptPath","resolveFrom","silent","relativePath","path","relative","join","posixPath","process","platform","androidBuildScript","isMainApplicationMetaDataSet","getMainApplicationMetaDataValue","Boolean","isMainApplicationMetaDataSynced","areVersionsSynced","expectedRuntimeVersion","expectedSdkVersion","currentRuntimeVersion","currentSdkVersion"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport {\n ExpoConfigUpdates,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullable,\n getSDKVersion,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n} from '../utils/Updates';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationMetaDataValue,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\n\nconst CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n SDK_VERSION = 'expo.modules.updates.EXPO_SDK_VERSION',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n}\n\nexport const withUpdates: ConfigPlugin<{ expoUsername: string | null }> = (\n config,\n { expoUsername }\n) => {\n return withAndroidManifest(config, (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = setUpdatesConfig(\n projectRoot,\n config,\n config.modResults,\n expoUsername,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nexport function setUpdatesConfig(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null,\n expoUpdatesPackageVersion?: string | null\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CHECK_ON_LAUNCH,\n getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion)\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.LAUNCH_WAIT_MS,\n String(getUpdatesTimeout(config))\n );\n\n const updateUrl = getUpdateUrl(config, username);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n return setVersionsConfig(config, androidManifest);\n}\n\nexport function setVersionsConfig(\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = getRuntimeVersionNullable(config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n const sdkVersion = getSDKVersion(config);\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.RUNTIME_VERSION, runtimeVersion);\n } else if (sdkVersion) {\n /**\n * runtime version maybe null in projects using classic updates. In that\n * case we use SDK version\n */\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.SDK_VERSION, sdkVersion);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n }\n\n return androidManifest;\n}\nexport function ensureBuildGradleContainsConfigurationScript(\n projectRoot: string,\n buildGradleContents: string\n): string {\n if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {\n let cleanedUpBuildGradleContents;\n\n const isBuildGradleMisconfigured = buildGradleContents\n .split('\\n')\n .some((line) => line.includes(CREATE_MANIFEST_ANDROID_PATH));\n if (isBuildGradleMisconfigured) {\n cleanedUpBuildGradleContents = buildGradleContents.replace(\n new RegExp(`(\\n// Integration with Expo updates)?\\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\\n`),\n ''\n );\n } else {\n cleanedUpBuildGradleContents = buildGradleContents;\n }\n\n const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);\n return `${cleanedUpBuildGradleContents}\\n// Integration with Expo updates\\n${gradleScriptApply}\\n`;\n } else {\n return buildGradleContents;\n }\n}\n\nexport function formatApplyLineForBuildGradle(projectRoot: string): string {\n const updatesGradleScriptPath = resolveFrom.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);\n\n if (!updatesGradleScriptPath) {\n throw new Error(\n \"Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.\"\n );\n }\n\n const relativePath = path.relative(\n path.join(projectRoot, 'android', 'app'),\n updatesGradleScriptPath\n );\n const posixPath = process.platform === 'win32' ? relativePath.replace(/\\\\/g, '/') : relativePath;\n\n return `apply from: \"${posixPath}\"`;\n}\n\nexport function isBuildGradleConfigured(projectRoot: string, buildGradleContents: string): boolean {\n const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);\n\n return (\n buildGradleContents\n .replace(/\\r\\n/g, '\\n')\n .split('\\n')\n // Check for both single and double quotes\n .some((line) => line === androidBuildScript || line === androidBuildScript.replace(/\"/g, \"'\"))\n );\n}\n\nexport function isMainApplicationMetaDataSet(androidManifest: AndroidManifest): boolean {\n const updateUrl = getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL);\n const runtimeVersion = getMainApplicationMetaDataValue(androidManifest, Config.RUNTIME_VERSION);\n const sdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n return Boolean(updateUrl && (sdkVersion || runtimeVersion));\n}\n\nexport function isMainApplicationMetaDataSynced(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null\n): boolean {\n return (\n getUpdateUrl(config, username) ===\n getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL) &&\n String(getUpdatesEnabled(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.ENABLED) &&\n String(getUpdatesTimeout(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.LAUNCH_WAIT_MS) &&\n getUpdatesCheckOnLaunch(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CHECK_ON_LAUNCH) &&\n getUpdatesCodeSigningCertificate(projectRoot, config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_CERTIFICATE) &&\n getUpdatesCodeSigningMetadataStringified(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_METADATA) &&\n areVersionsSynced(config, androidManifest)\n );\n}\n\nexport function areVersionsSynced(\n config: Pick<ExpoConfigUpdates, 'runtimeVersion' | 'sdkVersion'>,\n androidManifest: AndroidManifest\n): boolean {\n const expectedRuntimeVersion = getRuntimeVersionNullable(config, 'android');\n const expectedSdkVersion = getSDKVersion(config);\n\n const currentRuntimeVersion = getMainApplicationMetaDataValue(\n androidManifest,\n Config.RUNTIME_VERSION\n );\n const currentSdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n if (expectedRuntimeVersion !== null) {\n return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;\n } else if (expectedSdkVersion !== null) {\n return currentSdkVersion === expectedSdkVersion && currentRuntimeVersion === null;\n } else {\n return true;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Updates.js","names":["CREATE_MANIFEST_ANDROID_PATH","Config","withUpdates","config","expoUsername","withPlugins","withUpdatesManifest","withRuntimeVersionResource","withAndroidManifest","projectRoot","modRequest","expoUpdatesPackageVersion","getExpoUpdatesPackageVersion","modResults","setUpdatesConfig","createStringsXmlPlugin","applyRuntimeVersionFromConfig","stringsJSON","runtimeVersion","getRuntimeVersionNullable","setStringItem","buildResourceItem","name","value","removeStringItem","androidManifest","username","mainApplication","getMainApplicationOrThrow","addMetaDataItemToMainApplication","ENABLED","String","getUpdatesEnabled","CHECK_ON_LAUNCH","getUpdatesCheckOnLaunch","LAUNCH_WAIT_MS","getUpdatesTimeout","updateUrl","getUpdateUrl","UPDATE_URL","removeMetaDataItemFromMainApplication","codeSigningCertificate","getUpdatesCodeSigningCertificate","CODE_SIGNING_CERTIFICATE","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","CODE_SIGNING_METADATA","requestHeaders","getUpdatesRequestHeadersStringified","UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY","setVersionsConfig","findMetaDataItem","RUNTIME_VERSION","Error","sdkVersion","getSDKVersion","SDK_VERSION","ensureBuildGradleContainsConfigurationScript","buildGradleContents","isBuildGradleConfigured","cleanedUpBuildGradleContents","isBuildGradleMisconfigured","split","some","line","includes","replace","RegExp","gradleScriptApply","formatApplyLineForBuildGradle","updatesGradleScriptPath","resolveFrom","silent","relativePath","path","relative","join","posixPath","process","platform","androidBuildScript","isMainApplicationMetaDataSet","getMainApplicationMetaDataValue","Boolean","isMainApplicationMetaDataSynced","areVersionsSynced","expectedRuntimeVersion","expectedSdkVersion","currentRuntimeVersion","currentSdkVersion"],"sources":["../../src/android/Updates.ts"],"sourcesContent":["import path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { createStringsXmlPlugin, withAndroidManifest } from '../plugins/android-plugins';\nimport { withPlugins } from '../plugins/withPlugins';\nimport {\n ExpoConfigUpdates,\n getExpoUpdatesPackageVersion,\n getRuntimeVersionNullable,\n getSDKVersion,\n getUpdatesCheckOnLaunch,\n getUpdatesCodeSigningCertificate,\n getUpdatesCodeSigningMetadataStringified,\n getUpdatesRequestHeadersStringified,\n getUpdatesEnabled,\n getUpdatesTimeout,\n getUpdateUrl,\n} from '../utils/Updates';\nimport {\n addMetaDataItemToMainApplication,\n AndroidManifest,\n findMetaDataItem,\n getMainApplicationMetaDataValue,\n getMainApplicationOrThrow,\n removeMetaDataItemFromMainApplication,\n} from './Manifest';\nimport { buildResourceItem, ResourceXML } from './Resources';\nimport { removeStringItem, setStringItem } from './Strings';\n\nconst CREATE_MANIFEST_ANDROID_PATH = 'expo-updates/scripts/create-manifest-android.gradle';\n\nexport enum Config {\n ENABLED = 'expo.modules.updates.ENABLED',\n CHECK_ON_LAUNCH = 'expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH',\n LAUNCH_WAIT_MS = 'expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS',\n SDK_VERSION = 'expo.modules.updates.EXPO_SDK_VERSION',\n RUNTIME_VERSION = 'expo.modules.updates.EXPO_RUNTIME_VERSION',\n UPDATE_URL = 'expo.modules.updates.EXPO_UPDATE_URL',\n RELEASE_CHANNEL = 'expo.modules.updates.EXPO_RELEASE_CHANNEL',\n UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY = 'expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY',\n CODE_SIGNING_CERTIFICATE = 'expo.modules.updates.CODE_SIGNING_CERTIFICATE',\n CODE_SIGNING_METADATA = 'expo.modules.updates.CODE_SIGNING_METADATA',\n}\n\nexport const withUpdates: ConfigPlugin<{ expoUsername: string | null }> = (\n config,\n { expoUsername }\n) => {\n return withPlugins(config, [[withUpdatesManifest, { expoUsername }], withRuntimeVersionResource]);\n};\n\nconst withUpdatesManifest: ConfigPlugin<{ expoUsername: string | null }> = (\n config,\n { expoUsername }\n) => {\n return withAndroidManifest(config, (config) => {\n const projectRoot = config.modRequest.projectRoot;\n const expoUpdatesPackageVersion = getExpoUpdatesPackageVersion(projectRoot);\n config.modResults = setUpdatesConfig(\n projectRoot,\n config,\n config.modResults,\n expoUsername,\n expoUpdatesPackageVersion\n );\n return config;\n });\n};\n\nconst withRuntimeVersionResource = createStringsXmlPlugin(\n applyRuntimeVersionFromConfig,\n 'withRuntimeVersionResource'\n);\n\nexport function applyRuntimeVersionFromConfig(\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n stringsJSON: ResourceXML\n): ResourceXML {\n const runtimeVersion = getRuntimeVersionNullable(config, 'android');\n if (runtimeVersion) {\n return setStringItem(\n [buildResourceItem({ name: 'expo_runtime_version', value: runtimeVersion })],\n stringsJSON\n );\n }\n return removeStringItem('expo_runtime_version', stringsJSON);\n}\n\nexport function setUpdatesConfig(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null,\n expoUpdatesPackageVersion?: string | null\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.ENABLED,\n String(getUpdatesEnabled(config))\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CHECK_ON_LAUNCH,\n getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion)\n );\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.LAUNCH_WAIT_MS,\n String(getUpdatesTimeout(config))\n );\n\n const updateUrl = getUpdateUrl(config, username);\n if (updateUrl) {\n addMetaDataItemToMainApplication(mainApplication, Config.UPDATE_URL, updateUrl);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.UPDATE_URL);\n }\n\n const codeSigningCertificate = getUpdatesCodeSigningCertificate(projectRoot, config);\n if (codeSigningCertificate) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_CERTIFICATE,\n codeSigningCertificate\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_CERTIFICATE);\n }\n\n const codeSigningMetadata = getUpdatesCodeSigningMetadataStringified(config);\n if (codeSigningMetadata) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.CODE_SIGNING_METADATA,\n codeSigningMetadata\n );\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.CODE_SIGNING_METADATA);\n }\n\n const requestHeaders = getUpdatesRequestHeadersStringified(config);\n if (requestHeaders) {\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY,\n requestHeaders\n );\n } else {\n removeMetaDataItemFromMainApplication(\n mainApplication,\n Config.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY\n );\n }\n\n return setVersionsConfig(config, androidManifest);\n}\n\nexport function setVersionsConfig(\n config: Pick<ExpoConfigUpdates, 'sdkVersion' | 'runtimeVersion'>,\n androidManifest: AndroidManifest\n): AndroidManifest {\n const mainApplication = getMainApplicationOrThrow(androidManifest);\n\n const runtimeVersion = getRuntimeVersionNullable(config, 'android');\n if (!runtimeVersion && findMetaDataItem(mainApplication, Config.RUNTIME_VERSION) > -1) {\n throw new Error(\n 'A runtime version is set in your AndroidManifest.xml, but is missing from your app.json/app.config.js. Please either set runtimeVersion in your app.json/app.config.js or remove expo.modules.updates.EXPO_RUNTIME_VERSION from your AndroidManifest.xml.'\n );\n }\n const sdkVersion = getSDKVersion(config);\n if (runtimeVersion) {\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n addMetaDataItemToMainApplication(\n mainApplication,\n Config.RUNTIME_VERSION,\n '@string/expo_runtime_version'\n );\n } else if (sdkVersion) {\n /**\n * runtime version maybe null in projects using classic updates. In that\n * case we use SDK version\n */\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n addMetaDataItemToMainApplication(mainApplication, Config.SDK_VERSION, sdkVersion);\n } else {\n removeMetaDataItemFromMainApplication(mainApplication, Config.RUNTIME_VERSION);\n removeMetaDataItemFromMainApplication(mainApplication, Config.SDK_VERSION);\n }\n\n return androidManifest;\n}\nexport function ensureBuildGradleContainsConfigurationScript(\n projectRoot: string,\n buildGradleContents: string\n): string {\n if (!isBuildGradleConfigured(projectRoot, buildGradleContents)) {\n let cleanedUpBuildGradleContents;\n\n const isBuildGradleMisconfigured = buildGradleContents\n .split('\\n')\n .some((line) => line.includes(CREATE_MANIFEST_ANDROID_PATH));\n if (isBuildGradleMisconfigured) {\n cleanedUpBuildGradleContents = buildGradleContents.replace(\n new RegExp(`(\\n// Integration with Expo updates)?\\n.*${CREATE_MANIFEST_ANDROID_PATH}.*\\n`),\n ''\n );\n } else {\n cleanedUpBuildGradleContents = buildGradleContents;\n }\n\n const gradleScriptApply = formatApplyLineForBuildGradle(projectRoot);\n return `${cleanedUpBuildGradleContents}\\n// Integration with Expo updates\\n${gradleScriptApply}\\n`;\n } else {\n return buildGradleContents;\n }\n}\n\nexport function formatApplyLineForBuildGradle(projectRoot: string): string {\n const updatesGradleScriptPath = resolveFrom.silent(projectRoot, CREATE_MANIFEST_ANDROID_PATH);\n\n if (!updatesGradleScriptPath) {\n throw new Error(\n \"Could not find the build script for Android. This could happen in case of outdated 'node_modules'. Run 'npm install' to make sure that it's up-to-date.\"\n );\n }\n\n const relativePath = path.relative(\n path.join(projectRoot, 'android', 'app'),\n updatesGradleScriptPath\n );\n const posixPath = process.platform === 'win32' ? relativePath.replace(/\\\\/g, '/') : relativePath;\n\n return `apply from: \"${posixPath}\"`;\n}\n\nexport function isBuildGradleConfigured(projectRoot: string, buildGradleContents: string): boolean {\n const androidBuildScript = formatApplyLineForBuildGradle(projectRoot);\n\n return (\n buildGradleContents\n .replace(/\\r\\n/g, '\\n')\n .split('\\n')\n // Check for both single and double quotes\n .some((line) => line === androidBuildScript || line === androidBuildScript.replace(/\"/g, \"'\"))\n );\n}\n\nexport function isMainApplicationMetaDataSet(androidManifest: AndroidManifest): boolean {\n const updateUrl = getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL);\n const runtimeVersion = getMainApplicationMetaDataValue(androidManifest, Config.RUNTIME_VERSION);\n const sdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n return Boolean(updateUrl && (sdkVersion || runtimeVersion));\n}\n\nexport function isMainApplicationMetaDataSynced(\n projectRoot: string,\n config: ExpoConfigUpdates,\n androidManifest: AndroidManifest,\n username: string | null\n): boolean {\n return (\n getUpdateUrl(config, username) ===\n getMainApplicationMetaDataValue(androidManifest, Config.UPDATE_URL) &&\n String(getUpdatesEnabled(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.ENABLED) &&\n String(getUpdatesTimeout(config)) ===\n getMainApplicationMetaDataValue(androidManifest, Config.LAUNCH_WAIT_MS) &&\n getUpdatesCheckOnLaunch(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CHECK_ON_LAUNCH) &&\n getUpdatesCodeSigningCertificate(projectRoot, config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_CERTIFICATE) &&\n getUpdatesCodeSigningMetadataStringified(config) ===\n getMainApplicationMetaDataValue(androidManifest, Config.CODE_SIGNING_METADATA) &&\n areVersionsSynced(config, androidManifest)\n );\n}\n\nexport function areVersionsSynced(\n config: Pick<ExpoConfigUpdates, 'runtimeVersion' | 'sdkVersion'>,\n androidManifest: AndroidManifest\n): boolean {\n const expectedRuntimeVersion = getRuntimeVersionNullable(config, 'android');\n const expectedSdkVersion = getSDKVersion(config);\n\n const currentRuntimeVersion = getMainApplicationMetaDataValue(\n androidManifest,\n Config.RUNTIME_VERSION\n );\n const currentSdkVersion = getMainApplicationMetaDataValue(androidManifest, Config.SDK_VERSION);\n\n if (expectedRuntimeVersion !== null) {\n return currentRuntimeVersion === expectedRuntimeVersion && currentSdkVersion === null;\n } else if (expectedSdkVersion !== null) {\n return currentSdkVersion === expectedSdkVersion && currentRuntimeVersion === null;\n } else {\n return true;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAaA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA4D;AAE5D,MAAMA,4BAA4B,GAAG,qDAAqD;AAAC,IAE/EC,MAAM;AAAA;AAAA,WAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;AAAA,GAANA,MAAM,sBAANA,MAAM;AAaX,MAAMC,WAA0D,GAAG,CACxEC,MAAM,EACN;EAAEC;AAAa,CAAC,KACb;EACH,OAAO,IAAAC,0BAAW,EAACF,MAAM,EAAE,CAAC,CAACG,mBAAmB,EAAE;IAAEF;EAAa,CAAC,CAAC,EAAEG,0BAA0B,CAAC,CAAC;AACnG,CAAC;AAAC;AAEF,MAAMD,mBAAkE,GAAG,CACzEH,MAAM,EACN;EAAEC;AAAa,CAAC,KACb;EACH,OAAO,IAAAI,qCAAmB,EAACL,MAAM,EAAGA,MAAM,IAAK;IAC7C,MAAMM,WAAW,GAAGN,MAAM,CAACO,UAAU,CAACD,WAAW;IACjD,MAAME,yBAAyB,GAAG,IAAAC,uCAA4B,EAACH,WAAW,CAAC;IAC3EN,MAAM,CAACU,UAAU,GAAGC,gBAAgB,CAClCL,WAAW,EACXN,MAAM,EACNA,MAAM,CAACU,UAAU,EACjBT,YAAY,EACZO,yBAAyB,CAC1B;IACD,OAAOR,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAED,MAAMI,0BAA0B,GAAG,IAAAQ,wCAAsB,EACvDC,6BAA6B,EAC7B,4BAA4B,CAC7B;AAEM,SAASA,6BAA6B,CAC3Cb,MAAgE,EAChEc,WAAwB,EACX;EACb,MAAMC,cAAc,GAAG,IAAAC,oCAAyB,EAAChB,MAAM,EAAE,SAAS,CAAC;EACnE,IAAIe,cAAc,EAAE;IAClB,OAAO,IAAAE,wBAAa,EAClB,CAAC,IAAAC,8BAAiB,EAAC;MAAEC,IAAI,EAAE,sBAAsB;MAAEC,KAAK,EAAEL;IAAe,CAAC,CAAC,CAAC,EAC5ED,WAAW,CACZ;EACH;EACA,OAAO,IAAAO,2BAAgB,EAAC,sBAAsB,EAAEP,WAAW,CAAC;AAC9D;AAEO,SAASH,gBAAgB,CAC9BL,WAAmB,EACnBN,MAAyB,EACzBsB,eAAgC,EAChCC,QAAuB,EACvBf,yBAAyC,EACxB;EACjB,MAAMgB,eAAe,GAAG,IAAAC,qCAAyB,EAACH,eAAe,CAAC;EAElE,IAAAI,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAAC6B,OAAO,EACdC,MAAM,CAAC,IAAAC,4BAAiB,EAAC7B,MAAM,CAAC,CAAC,CAClC;EACD,IAAA0B,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAACgC,eAAe,EACtB,IAAAC,kCAAuB,EAAC/B,MAAM,EAAEQ,yBAAyB,CAAC,CAC3D;EACD,IAAAkB,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAACkC,cAAc,EACrBJ,MAAM,CAAC,IAAAK,4BAAiB,EAACjC,MAAM,CAAC,CAAC,CAClC;EAED,MAAMkC,SAAS,GAAG,IAAAC,uBAAY,EAACnC,MAAM,EAAEuB,QAAQ,CAAC;EAChD,IAAIW,SAAS,EAAE;IACb,IAAAR,4CAAgC,EAACF,eAAe,EAAE1B,MAAM,CAACsC,UAAU,EAAEF,SAAS,CAAC;EACjF,CAAC,MAAM;IACL,IAAAG,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAACsC,UAAU,CAAC;EAC3E;EAEA,MAAME,sBAAsB,GAAG,IAAAC,2CAAgC,EAACjC,WAAW,EAAEN,MAAM,CAAC;EACpF,IAAIsC,sBAAsB,EAAE;IAC1B,IAAAZ,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAAC0C,wBAAwB,EAC/BF,sBAAsB,CACvB;EACH,CAAC,MAAM;IACL,IAAAD,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAAC0C,wBAAwB,CAAC;EACzF;EAEA,MAAMC,mBAAmB,GAAG,IAAAC,mDAAwC,EAAC1C,MAAM,CAAC;EAC5E,IAAIyC,mBAAmB,EAAE;IACvB,IAAAf,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAAC6C,qBAAqB,EAC5BF,mBAAmB,CACpB;EACH,CAAC,MAAM;IACL,IAAAJ,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAAC6C,qBAAqB,CAAC;EACtF;EAEA,MAAMC,cAAc,GAAG,IAAAC,8CAAmC,EAAC7C,MAAM,CAAC;EAClE,IAAI4C,cAAc,EAAE;IAClB,IAAAlB,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAACgD,yCAAyC,EAChDF,cAAc,CACf;EACH,CAAC,MAAM;IACL,IAAAP,iDAAqC,EACnCb,eAAe,EACf1B,MAAM,CAACgD,yCAAyC,CACjD;EACH;EAEA,OAAOC,iBAAiB,CAAC/C,MAAM,EAAEsB,eAAe,CAAC;AACnD;AAEO,SAASyB,iBAAiB,CAC/B/C,MAAgE,EAChEsB,eAAgC,EACf;EACjB,MAAME,eAAe,GAAG,IAAAC,qCAAyB,EAACH,eAAe,CAAC;EAElE,MAAMP,cAAc,GAAG,IAAAC,oCAAyB,EAAChB,MAAM,EAAE,SAAS,CAAC;EACnE,IAAI,CAACe,cAAc,IAAI,IAAAiC,4BAAgB,EAACxB,eAAe,EAAE1B,MAAM,CAACmD,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;IACrF,MAAM,IAAIC,KAAK,CACb,2PAA2P,CAC5P;EACH;EACA,MAAMC,UAAU,GAAG,IAAAC,wBAAa,EAACpD,MAAM,CAAC;EACxC,IAAIe,cAAc,EAAE;IAClB,IAAAsB,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAACuD,WAAW,CAAC;IAC1E,IAAA3B,4CAAgC,EAC9BF,eAAe,EACf1B,MAAM,CAACmD,eAAe,EACtB,8BAA8B,CAC/B;EACH,CAAC,MAAM,IAAIE,UAAU,EAAE;IACrB;AACJ;AACA;AACA;IACI,IAAAd,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAACmD,eAAe,CAAC;IAC9E,IAAAvB,4CAAgC,EAACF,eAAe,EAAE1B,MAAM,CAACuD,WAAW,EAAEF,UAAU,CAAC;EACnF,CAAC,MAAM;IACL,IAAAd,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAACmD,eAAe,CAAC;IAC9E,IAAAZ,iDAAqC,EAACb,eAAe,EAAE1B,MAAM,CAACuD,WAAW,CAAC;EAC5E;EAEA,OAAO/B,eAAe;AACxB;AACO,SAASgC,4CAA4C,CAC1DhD,WAAmB,EACnBiD,mBAA2B,EACnB;EACR,IAAI,CAACC,uBAAuB,CAAClD,WAAW,EAAEiD,mBAAmB,CAAC,EAAE;IAC9D,IAAIE,4BAA4B;IAEhC,MAAMC,0BAA0B,GAAGH,mBAAmB,CACnDI,KAAK,CAAC,IAAI,CAAC,CACXC,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAACjE,4BAA4B,CAAC,CAAC;IAC9D,IAAI6D,0BAA0B,EAAE;MAC9BD,4BAA4B,GAAGF,mBAAmB,CAACQ,OAAO,CACxD,IAAIC,MAAM,CAAE,4CAA2CnE,4BAA6B,MAAK,CAAC,EAC1F,EAAE,CACH;IACH,CAAC,MAAM;MACL4D,4BAA4B,GAAGF,mBAAmB;IACpD;IAEA,MAAMU,iBAAiB,GAAGC,6BAA6B,CAAC5D,WAAW,CAAC;IACpE,OAAQ,GAAEmD,4BAA6B,uCAAsCQ,iBAAkB,IAAG;EACpG,CAAC,MAAM;IACL,OAAOV,mBAAmB;EAC5B;AACF;AAEO,SAASW,6BAA6B,CAAC5D,WAAmB,EAAU;EACzE,MAAM6D,uBAAuB,GAAGC,sBAAW,CAACC,MAAM,CAAC/D,WAAW,EAAET,4BAA4B,CAAC;EAE7F,IAAI,CAACsE,uBAAuB,EAAE;IAC5B,MAAM,IAAIjB,KAAK,CACb,yJAAyJ,CAC1J;EACH;EAEA,MAAMoB,YAAY,GAAGC,eAAI,CAACC,QAAQ,CAChCD,eAAI,CAACE,IAAI,CAACnE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,EACxC6D,uBAAuB,CACxB;EACD,MAAMO,SAAS,GAAGC,OAAO,CAACC,QAAQ,KAAK,OAAO,GAAGN,YAAY,CAACP,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAGO,YAAY;EAEhG,OAAQ,gBAAeI,SAAU,GAAE;AACrC;AAEO,SAASlB,uBAAuB,CAAClD,WAAmB,EAAEiD,mBAA2B,EAAW;EACjG,MAAMsB,kBAAkB,GAAGX,6BAA6B,CAAC5D,WAAW,CAAC;EAErE,OACEiD,mBAAmB,CAChBQ,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CACtBJ,KAAK,CAAC,IAAI;EACX;EAAA,CACCC,IAAI,CAAEC,IAAI,IAAKA,IAAI,KAAKgB,kBAAkB,IAAIhB,IAAI,KAAKgB,kBAAkB,CAACd,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEpG;AAEO,SAASe,4BAA4B,CAACxD,eAAgC,EAAW;EACtF,MAAMY,SAAS,GAAG,IAAA6C,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACsC,UAAU,CAAC;EACrF,MAAMrB,cAAc,GAAG,IAAAgE,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACmD,eAAe,CAAC;EAC/F,MAAME,UAAU,GAAG,IAAA4B,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACuD,WAAW,CAAC;EAEvF,OAAO2B,OAAO,CAAC9C,SAAS,KAAKiB,UAAU,IAAIpC,cAAc,CAAC,CAAC;AAC7D;AAEO,SAASkE,+BAA+B,CAC7C3E,WAAmB,EACnBN,MAAyB,EACzBsB,eAAgC,EAChCC,QAAuB,EACd;EACT,OACE,IAAAY,uBAAY,EAACnC,MAAM,EAAEuB,QAAQ,CAAC,KAC5B,IAAAwD,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACsC,UAAU,CAAC,IACrER,MAAM,CAAC,IAAAC,4BAAiB,EAAC7B,MAAM,CAAC,CAAC,KAC/B,IAAA+E,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAAC6B,OAAO,CAAC,IAClEC,MAAM,CAAC,IAAAK,4BAAiB,EAACjC,MAAM,CAAC,CAAC,KAC/B,IAAA+E,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACkC,cAAc,CAAC,IACzE,IAAAD,kCAAuB,EAAC/B,MAAM,CAAC,KAC7B,IAAA+E,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACgC,eAAe,CAAC,IAC1E,IAAAS,2CAAgC,EAACjC,WAAW,EAAEN,MAAM,CAAC,KACnD,IAAA+E,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAAC0C,wBAAwB,CAAC,IACnF,IAAAE,mDAAwC,EAAC1C,MAAM,CAAC,KAC9C,IAAA+E,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAAC6C,qBAAqB,CAAC,IAChFuC,iBAAiB,CAAClF,MAAM,EAAEsB,eAAe,CAAC;AAE9C;AAEO,SAAS4D,iBAAiB,CAC/BlF,MAAgE,EAChEsB,eAAgC,EACvB;EACT,MAAM6D,sBAAsB,GAAG,IAAAnE,oCAAyB,EAAChB,MAAM,EAAE,SAAS,CAAC;EAC3E,MAAMoF,kBAAkB,GAAG,IAAAhC,wBAAa,EAACpD,MAAM,CAAC;EAEhD,MAAMqF,qBAAqB,GAAG,IAAAN,2CAA+B,EAC3DzD,eAAe,EACfxB,MAAM,CAACmD,eAAe,CACvB;EACD,MAAMqC,iBAAiB,GAAG,IAAAP,2CAA+B,EAACzD,eAAe,EAAExB,MAAM,CAACuD,WAAW,CAAC;EAE9F,IAAI8B,sBAAsB,KAAK,IAAI,EAAE;IACnC,OAAOE,qBAAqB,KAAKF,sBAAsB,IAAIG,iBAAiB,KAAK,IAAI;EACvF,CAAC,MAAM,IAAIF,kBAAkB,KAAK,IAAI,EAAE;IACtC,OAAOE,iBAAiB,KAAKF,kBAAkB,IAAIC,qBAAqB,KAAK,IAAI;EACnF,CAAC,MAAM;IACL,OAAO,IAAI;EACb;AACF"}
@@ -9,27 +9,20 @@ exports.setMinBuildScriptExtVersion = setMinBuildScriptExtVersion;
9
9
  exports.setVersionCode = setVersionCode;
10
10
  exports.setVersionName = setVersionName;
11
11
  exports.withVersion = exports.withBuildScriptExtMinimumVersion = void 0;
12
-
13
12
  function _androidPlugins() {
14
13
  const data = require("../plugins/android-plugins");
15
-
16
14
  _androidPlugins = function () {
17
15
  return data;
18
16
  };
19
-
20
17
  return data;
21
18
  }
22
-
23
19
  function _warnings() {
24
20
  const data = require("../utils/warnings");
25
-
26
21
  _warnings = function () {
27
22
  return data;
28
23
  };
29
-
30
24
  return data;
31
25
  }
32
-
33
26
  const withVersion = config => {
34
27
  return (0, _androidPlugins().withAppBuildGradle)(config, config => {
35
28
  if (config.modResults.language === 'groovy') {
@@ -38,15 +31,12 @@ const withVersion = config => {
38
31
  } else {
39
32
  (0, _warnings().addWarningAndroid)('android.versionCode', `Cannot automatically configure app build.gradle if it's not groovy`);
40
33
  }
41
-
42
34
  return config;
43
35
  });
44
36
  };
45
- /** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */
46
-
47
37
 
38
+ /** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */
48
39
  exports.withVersion = withVersion;
49
-
50
40
  const withBuildScriptExtMinimumVersion = (config, props) => {
51
41
  return (0, _androidPlugins().withProjectBuildGradle)(config, config => {
52
42
  if (config.modResults.language === 'groovy') {
@@ -54,62 +44,46 @@ const withBuildScriptExtMinimumVersion = (config, props) => {
54
44
  } else {
55
45
  (0, _warnings().addWarningAndroid)('withBuildScriptExtVersion', `Cannot automatically configure project build.gradle if it's not groovy`);
56
46
  }
57
-
58
47
  return config;
59
48
  });
60
49
  };
61
-
62
50
  exports.withBuildScriptExtMinimumVersion = withBuildScriptExtMinimumVersion;
63
-
64
51
  function setMinBuildScriptExtVersion(buildGradle, {
65
52
  name,
66
53
  minVersion
67
54
  }) {
68
55
  var _buildGradle$match;
69
-
70
56
  const regex = new RegExp(`(${name}\\s?=\\s?)(\\d+(?:\\.\\d+)?)`);
71
57
  const currentVersion = (_buildGradle$match = buildGradle.match(regex)) === null || _buildGradle$match === void 0 ? void 0 : _buildGradle$match[2];
72
-
73
58
  if (!currentVersion) {
74
- (0, _warnings().addWarningAndroid)('withBuildScriptExtVersion', `Cannot set minimum buildscript.ext.${name} version because the property "${name}" cannot be found or does not have a numeric value.`); // TODO: Maybe just add the property...
75
-
59
+ (0, _warnings().addWarningAndroid)('withBuildScriptExtVersion', `Cannot set minimum buildscript.ext.${name} version because the property "${name}" cannot be found or does not have a numeric value.`);
60
+ // TODO: Maybe just add the property...
76
61
  return buildGradle;
77
62
  }
78
-
79
63
  const currentVersionNum = Number(currentVersion);
80
64
  return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);
81
65
  }
82
-
83
66
  function getVersionName(config) {
84
67
  var _config$version;
85
-
86
68
  return (_config$version = config.version) !== null && _config$version !== void 0 ? _config$version : null;
87
69
  }
88
-
89
70
  function setVersionName(config, buildGradle) {
90
71
  const versionName = getVersionName(config);
91
-
92
72
  if (versionName === null) {
93
73
  return buildGradle;
94
74
  }
95
-
96
75
  const pattern = new RegExp(`versionName ".*"`);
97
76
  return buildGradle.replace(pattern, `versionName "${versionName}"`);
98
77
  }
99
-
100
78
  function getVersionCode(config) {
101
79
  var _config$android$versi, _config$android;
102
-
103
80
  return (_config$android$versi = (_config$android = config.android) === null || _config$android === void 0 ? void 0 : _config$android.versionCode) !== null && _config$android$versi !== void 0 ? _config$android$versi : 1;
104
81
  }
105
-
106
82
  function setVersionCode(config, buildGradle) {
107
83
  const versionCode = getVersionCode(config);
108
-
109
84
  if (versionCode === null) {
110
85
  return buildGradle;
111
86
  }
112
-
113
87
  const pattern = new RegExp(`versionCode.*`);
114
88
  return buildGradle.replace(pattern, `versionCode ${versionCode}`);
115
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Version.js","names":["withVersion","config","withAppBuildGradle","modResults","language","contents","setVersionCode","setVersionName","addWarningAndroid","withBuildScriptExtMinimumVersion","props","withProjectBuildGradle","setMinBuildScriptExtVersion","buildGradle","name","minVersion","regex","RegExp","currentVersion","match","currentVersionNum","Number","replace","Math","max","getVersionName","version","versionName","pattern","getVersionCode","android","versionCode"],"sources":["../../src/android/Version.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport const withVersion: ConfigPlugin = (config) => {\n return withAppBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setVersionCode(config, config.modResults.contents);\n config.modResults.contents = setVersionName(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.versionCode',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */\nexport const withBuildScriptExtMinimumVersion: ConfigPlugin<{\n name: string;\n minVersion: number;\n}> = (config, props) => {\n return withProjectBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);\n } else {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function setMinBuildScriptExtVersion(\n buildGradle: string,\n { name, minVersion }: { name: string; minVersion: number }\n) {\n const regex = new RegExp(`(${name}\\\\s?=\\\\s?)(\\\\d+(?:\\\\.\\\\d+)?)`);\n const currentVersion = buildGradle.match(regex)?.[2];\n if (!currentVersion) {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot set minimum buildscript.ext.${name} version because the property \"${name}\" cannot be found or does not have a numeric value.`\n );\n // TODO: Maybe just add the property...\n return buildGradle;\n }\n\n const currentVersionNum = Number(currentVersion);\n return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);\n}\n\nexport function getVersionName(config: Pick<ExpoConfig, 'version'>) {\n return config.version ?? null;\n}\n\nexport function setVersionName(config: Pick<ExpoConfig, 'version'>, buildGradle: string) {\n const versionName = getVersionName(config);\n if (versionName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionName \".*\"`);\n return buildGradle.replace(pattern, `versionName \"${versionName}\"`);\n}\n\nexport function getVersionCode(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.versionCode ?? 1;\n}\n\nexport function setVersionCode(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const versionCode = getVersionCode(config);\n if (versionCode === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionCode.*`);\n return buildGradle.replace(pattern, `versionCode ${versionCode}`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Version.js","names":["withVersion","config","withAppBuildGradle","modResults","language","contents","setVersionCode","setVersionName","addWarningAndroid","withBuildScriptExtMinimumVersion","props","withProjectBuildGradle","setMinBuildScriptExtVersion","buildGradle","name","minVersion","regex","RegExp","currentVersion","match","currentVersionNum","Number","replace","Math","max","getVersionName","version","versionName","pattern","getVersionCode","android","versionCode"],"sources":["../../src/android/Version.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAppBuildGradle, withProjectBuildGradle } from '../plugins/android-plugins';\nimport { addWarningAndroid } from '../utils/warnings';\n\nexport const withVersion: ConfigPlugin = (config) => {\n return withAppBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setVersionCode(config, config.modResults.contents);\n config.modResults.contents = setVersionName(config, config.modResults.contents);\n } else {\n addWarningAndroid(\n 'android.versionCode',\n `Cannot automatically configure app build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\n/** Sets a numeric version for a value in the project.gradle buildscript.ext object to be at least the provided props.minVersion, if the existing value is greater then no change will be made. */\nexport const withBuildScriptExtMinimumVersion: ConfigPlugin<{\n name: string;\n minVersion: number;\n}> = (config, props) => {\n return withProjectBuildGradle(config, (config) => {\n if (config.modResults.language === 'groovy') {\n config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);\n } else {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot automatically configure project build.gradle if it's not groovy`\n );\n }\n return config;\n });\n};\n\nexport function setMinBuildScriptExtVersion(\n buildGradle: string,\n { name, minVersion }: { name: string; minVersion: number }\n) {\n const regex = new RegExp(`(${name}\\\\s?=\\\\s?)(\\\\d+(?:\\\\.\\\\d+)?)`);\n const currentVersion = buildGradle.match(regex)?.[2];\n if (!currentVersion) {\n addWarningAndroid(\n 'withBuildScriptExtVersion',\n `Cannot set minimum buildscript.ext.${name} version because the property \"${name}\" cannot be found or does not have a numeric value.`\n );\n // TODO: Maybe just add the property...\n return buildGradle;\n }\n\n const currentVersionNum = Number(currentVersion);\n return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);\n}\n\nexport function getVersionName(config: Pick<ExpoConfig, 'version'>) {\n return config.version ?? null;\n}\n\nexport function setVersionName(config: Pick<ExpoConfig, 'version'>, buildGradle: string) {\n const versionName = getVersionName(config);\n if (versionName === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionName \".*\"`);\n return buildGradle.replace(pattern, `versionName \"${versionName}\"`);\n}\n\nexport function getVersionCode(config: Pick<ExpoConfig, 'android'>) {\n return config.android?.versionCode ?? 1;\n}\n\nexport function setVersionCode(config: Pick<ExpoConfig, 'android'>, buildGradle: string) {\n const versionCode = getVersionCode(config);\n if (versionCode === null) {\n return buildGradle;\n }\n\n const pattern = new RegExp(`versionCode.*`);\n return buildGradle.replace(pattern, `versionCode ${versionCode}`);\n}\n"],"mappings":"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"}
@@ -6,58 +6,44 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getWindowSoftInputModeMode = getWindowSoftInputModeMode;
7
7
  exports.setWindowSoftInputModeMode = setWindowSoftInputModeMode;
8
8
  exports.withWindowSoftInputMode = void 0;
9
-
10
9
  function _androidPlugins() {
11
10
  const data = require("../plugins/android-plugins");
12
-
13
11
  _androidPlugins = function () {
14
12
  return data;
15
13
  };
16
-
17
14
  return data;
18
15
  }
19
-
20
16
  function _Manifest() {
21
17
  const data = require("./Manifest");
22
-
23
18
  _Manifest = function () {
24
19
  return data;
25
20
  };
26
-
27
21
  return data;
28
22
  }
29
-
30
23
  const ANDROID_WINDOW_SOFT_INPUT_MODE = 'android:windowSoftInputMode';
31
24
  const MAPPING = {
32
25
  pan: 'adjustPan',
33
26
  resize: 'adjustResize'
34
27
  };
35
-
36
28
  const withWindowSoftInputMode = config => {
37
29
  return (0, _androidPlugins().withAndroidManifest)(config, async config => {
38
30
  config.modResults = setWindowSoftInputModeMode(config, config.modResults);
39
31
  return config;
40
32
  });
41
33
  };
42
-
43
34
  exports.withWindowSoftInputMode = withWindowSoftInputMode;
44
-
45
35
  function setWindowSoftInputModeMode(config, androidManifest) {
46
36
  const app = (0, _Manifest().getMainActivityOrThrow)(androidManifest);
47
37
  app.$[ANDROID_WINDOW_SOFT_INPUT_MODE] = getWindowSoftInputModeMode(config);
48
38
  return androidManifest;
49
39
  }
50
-
51
40
  function getWindowSoftInputModeMode(config) {
52
41
  var _config$android, _MAPPING$value;
53
-
54
42
  const value = (_config$android = config.android) === null || _config$android === void 0 ? void 0 : _config$android.softwareKeyboardLayoutMode;
55
-
56
43
  if (!value) {
57
44
  // Default to `adjustResize` or `resize`.
58
45
  return 'adjustResize';
59
46
  }
60
-
61
47
  return (_MAPPING$value = MAPPING[value]) !== null && _MAPPING$value !== void 0 ? _MAPPING$value : value;
62
48
  }
63
49
  //# sourceMappingURL=WindowSoftInputMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WindowSoftInputMode.js","names":["ANDROID_WINDOW_SOFT_INPUT_MODE","MAPPING","pan","resize","withWindowSoftInputMode","config","withAndroidManifest","modResults","setWindowSoftInputModeMode","androidManifest","app","getMainActivityOrThrow","$","getWindowSoftInputModeMode","value","android","softwareKeyboardLayoutMode"],"sources":["../../src/android/WindowSoftInputMode.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nconst ANDROID_WINDOW_SOFT_INPUT_MODE = 'android:windowSoftInputMode';\n\nconst MAPPING: Record<string, string> = {\n pan: 'adjustPan',\n resize: 'adjustResize',\n};\n\nexport const withWindowSoftInputMode: ConfigPlugin = (config) => {\n return withAndroidManifest(config, async (config) => {\n config.modResults = setWindowSoftInputModeMode(config, config.modResults);\n return config;\n });\n};\n\nexport function setWindowSoftInputModeMode(\n config: Pick<ExpoConfig, 'android' | 'userInterfaceStyle'>,\n androidManifest: AndroidManifest\n) {\n const app = getMainActivityOrThrow(androidManifest);\n app.$[ANDROID_WINDOW_SOFT_INPUT_MODE] = getWindowSoftInputModeMode(config);\n return androidManifest;\n}\n\nexport function getWindowSoftInputModeMode(config: Pick<ExpoConfig, 'android'>) {\n const value = config.android?.softwareKeyboardLayoutMode;\n\n if (!value) {\n // Default to `adjustResize` or `resize`.\n return 'adjustResize';\n }\n return MAPPING[value] ?? value;\n}\n"],"mappings":";;;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA,MAAMA,8BAA8B,GAAG,6BAAvC;AAEA,MAAMC,OAA+B,GAAG;EACtCC,GAAG,EAAE,WADiC;EAEtCC,MAAM,EAAE;AAF8B,CAAxC;;AAKO,MAAMC,uBAAqC,GAAIC,MAAD,IAAY;EAC/D,OAAO,IAAAC,qCAAA,EAAoBD,MAApB,EAA4B,MAAOA,MAAP,IAAkB;IACnDA,MAAM,CAACE,UAAP,GAAoBC,0BAA0B,CAACH,MAAD,EAASA,MAAM,CAACE,UAAhB,CAA9C;IACA,OAAOF,MAAP;EACD,CAHM,CAAP;AAID,CALM;;;;AAOA,SAASG,0BAAT,CACLH,MADK,EAELI,eAFK,EAGL;EACA,MAAMC,GAAG,GAAG,IAAAC,kCAAA,EAAuBF,eAAvB,CAAZ;EACAC,GAAG,CAACE,CAAJ,CAAMZ,8BAAN,IAAwCa,0BAA0B,CAACR,MAAD,CAAlE;EACA,OAAOI,eAAP;AACD;;AAEM,SAASI,0BAAT,CAAoCR,MAApC,EAAyE;EAAA;;EAC9E,MAAMS,KAAK,sBAAGT,MAAM,CAACU,OAAV,oDAAG,gBAAgBC,0BAA9B;;EAEA,IAAI,CAACF,KAAL,EAAY;IACV;IACA,OAAO,cAAP;EACD;;EACD,yBAAOb,OAAO,CAACa,KAAD,CAAd,2DAAyBA,KAAzB;AACD"}
1
+ {"version":3,"file":"WindowSoftInputMode.js","names":["ANDROID_WINDOW_SOFT_INPUT_MODE","MAPPING","pan","resize","withWindowSoftInputMode","config","withAndroidManifest","modResults","setWindowSoftInputModeMode","androidManifest","app","getMainActivityOrThrow","$","getWindowSoftInputModeMode","value","android","softwareKeyboardLayoutMode"],"sources":["../../src/android/WindowSoftInputMode.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config-types';\n\nimport { ConfigPlugin } from '../Plugin.types';\nimport { withAndroidManifest } from '../plugins/android-plugins';\nimport { AndroidManifest, getMainActivityOrThrow } from './Manifest';\n\nconst ANDROID_WINDOW_SOFT_INPUT_MODE = 'android:windowSoftInputMode';\n\nconst MAPPING: Record<string, string> = {\n pan: 'adjustPan',\n resize: 'adjustResize',\n};\n\nexport const withWindowSoftInputMode: ConfigPlugin = (config) => {\n return withAndroidManifest(config, async (config) => {\n config.modResults = setWindowSoftInputModeMode(config, config.modResults);\n return config;\n });\n};\n\nexport function setWindowSoftInputModeMode(\n config: Pick<ExpoConfig, 'android' | 'userInterfaceStyle'>,\n androidManifest: AndroidManifest\n) {\n const app = getMainActivityOrThrow(androidManifest);\n app.$[ANDROID_WINDOW_SOFT_INPUT_MODE] = getWindowSoftInputModeMode(config);\n return androidManifest;\n}\n\nexport function getWindowSoftInputModeMode(config: Pick<ExpoConfig, 'android'>) {\n const value = config.android?.softwareKeyboardLayoutMode;\n\n if (!value) {\n // Default to `adjustResize` or `resize`.\n return 'adjustResize';\n }\n return MAPPING[value] ?? value;\n}\n"],"mappings":";;;;;;;;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA,MAAMA,8BAA8B,GAAG,6BAA6B;AAEpE,MAAMC,OAA+B,GAAG;EACtCC,GAAG,EAAE,WAAW;EAChBC,MAAM,EAAE;AACV,CAAC;AAEM,MAAMC,uBAAqC,GAAIC,MAAM,IAAK;EAC/D,OAAO,IAAAC,qCAAmB,EAACD,MAAM,EAAE,MAAOA,MAAM,IAAK;IACnDA,MAAM,CAACE,UAAU,GAAGC,0BAA0B,CAACH,MAAM,EAAEA,MAAM,CAACE,UAAU,CAAC;IACzE,OAAOF,MAAM;EACf,CAAC,CAAC;AACJ,CAAC;AAAC;AAEK,SAASG,0BAA0B,CACxCH,MAA0D,EAC1DI,eAAgC,EAChC;EACA,MAAMC,GAAG,GAAG,IAAAC,kCAAsB,EAACF,eAAe,CAAC;EACnDC,GAAG,CAACE,CAAC,CAACZ,8BAA8B,CAAC,GAAGa,0BAA0B,CAACR,MAAM,CAAC;EAC1E,OAAOI,eAAe;AACxB;AAEO,SAASI,0BAA0B,CAACR,MAAmC,EAAE;EAAA;EAC9E,MAAMS,KAAK,sBAAGT,MAAM,CAACU,OAAO,oDAAd,gBAAgBC,0BAA0B;EAExD,IAAI,CAACF,KAAK,EAAE;IACV;IACA,OAAO,cAAc;EACvB;EACA,yBAAOb,OAAO,CAACa,KAAK,CAAC,2DAAIA,KAAK;AAChC"}