1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4  value: true
5});
6exports.getVersionCode = getVersionCode;
7exports.getVersionName = getVersionName;
8exports.setMinBuildScriptExtVersion = setMinBuildScriptExtVersion;
9exports.setVersionCode = setVersionCode;
10exports.setVersionName = setVersionName;
11exports.withVersion = exports.withBuildScriptExtMinimumVersion = void 0;
12function _androidPlugins() {
13  const data = require("../plugins/android-plugins");
14  _androidPlugins = function () {
15    return data;
16  };
17  return data;
18}
19function _warnings() {
20  const data = require("../utils/warnings");
21  _warnings = function () {
22    return data;
23  };
24  return data;
25}
26const withVersion = config => {
27  return (0, _androidPlugins().withAppBuildGradle)(config, config => {
28    if (config.modResults.language === 'groovy') {
29      config.modResults.contents = setVersionCode(config, config.modResults.contents);
30      config.modResults.contents = setVersionName(config, config.modResults.contents);
31    } else {
32      (0, _warnings().addWarningAndroid)('android.versionCode', `Cannot automatically configure app build.gradle if it's not groovy`);
33    }
34    return config;
35  });
36};
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. */
39exports.withVersion = withVersion;
40const withBuildScriptExtMinimumVersion = (config, props) => {
41  return (0, _androidPlugins().withProjectBuildGradle)(config, config => {
42    if (config.modResults.language === 'groovy') {
43      config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);
44    } else {
45      (0, _warnings().addWarningAndroid)('withBuildScriptExtVersion', `Cannot automatically configure project build.gradle if it's not groovy`);
46    }
47    return config;
48  });
49};
50exports.withBuildScriptExtMinimumVersion = withBuildScriptExtMinimumVersion;
51function setMinBuildScriptExtVersion(buildGradle, {
52  name,
53  minVersion
54}) {
55  var _buildGradle$match;
56  const regex = new RegExp(`(${name}\\s?=\\s?)(\\d+(?:\\.\\d+)?)`);
57  const currentVersion = (_buildGradle$match = buildGradle.match(regex)) === null || _buildGradle$match === void 0 ? void 0 : _buildGradle$match[2];
58  if (!currentVersion) {
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...
61    return buildGradle;
62  }
63  const currentVersionNum = Number(currentVersion);
64  return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);
65}
66function getVersionName(config) {
67  var _config$version;
68  return (_config$version = config.version) !== null && _config$version !== void 0 ? _config$version : null;
69}
70function setVersionName(config, buildGradle) {
71  const versionName = getVersionName(config);
72  if (versionName === null) {
73    return buildGradle;
74  }
75  const pattern = new RegExp(`versionName ".*"`);
76  return buildGradle.replace(pattern, `versionName "${versionName}"`);
77}
78function getVersionCode(config) {
79  var _config$android$versi, _config$android;
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;
81}
82function setVersionCode(config, buildGradle) {
83  const versionCode = getVersionCode(config);
84  if (versionCode === null) {
85    return buildGradle;
86  }
87  const pattern = new RegExp(`versionCode.*`);
88  return buildGradle.replace(pattern, `versionCode ${versionCode}`);
89}
90//# sourceMappingURL=Version.js.map