1082815dcSEvan Bacon"use strict";
2082815dcSEvan Bacon
3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", {
4082815dcSEvan Bacon  value: true
5082815dcSEvan Bacon});
6082815dcSEvan Baconexports.getVersionCode = getVersionCode;
7082815dcSEvan Baconexports.getVersionName = getVersionName;
8082815dcSEvan Baconexports.setMinBuildScriptExtVersion = setMinBuildScriptExtVersion;
9082815dcSEvan Baconexports.setVersionCode = setVersionCode;
10082815dcSEvan Baconexports.setVersionName = setVersionName;
11082815dcSEvan Baconexports.withVersion = exports.withBuildScriptExtMinimumVersion = void 0;
12082815dcSEvan Baconfunction _androidPlugins() {
13082815dcSEvan Bacon  const data = require("../plugins/android-plugins");
14082815dcSEvan Bacon  _androidPlugins = function () {
15082815dcSEvan Bacon    return data;
16082815dcSEvan Bacon  };
17082815dcSEvan Bacon  return data;
18082815dcSEvan Bacon}
19082815dcSEvan Baconfunction _warnings() {
20082815dcSEvan Bacon  const data = require("../utils/warnings");
21082815dcSEvan Bacon  _warnings = function () {
22082815dcSEvan Bacon    return data;
23082815dcSEvan Bacon  };
24082815dcSEvan Bacon  return data;
25082815dcSEvan Bacon}
26082815dcSEvan Baconconst withVersion = config => {
27082815dcSEvan Bacon  return (0, _androidPlugins().withAppBuildGradle)(config, config => {
28082815dcSEvan Bacon    if (config.modResults.language === 'groovy') {
29082815dcSEvan Bacon      config.modResults.contents = setVersionCode(config, config.modResults.contents);
30082815dcSEvan Bacon      config.modResults.contents = setVersionName(config, config.modResults.contents);
31082815dcSEvan Bacon    } else {
32082815dcSEvan Bacon      (0, _warnings().addWarningAndroid)('android.versionCode', `Cannot automatically configure app build.gradle if it's not groovy`);
33082815dcSEvan Bacon    }
34082815dcSEvan Bacon    return config;
35082815dcSEvan Bacon  });
36082815dcSEvan Bacon};
37*ee216927STomasz Sapeta
38082815dcSEvan Bacon/** 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. */
39082815dcSEvan Baconexports.withVersion = withVersion;
40082815dcSEvan Baconconst withBuildScriptExtMinimumVersion = (config, props) => {
41082815dcSEvan Bacon  return (0, _androidPlugins().withProjectBuildGradle)(config, config => {
42082815dcSEvan Bacon    if (config.modResults.language === 'groovy') {
43082815dcSEvan Bacon      config.modResults.contents = setMinBuildScriptExtVersion(config.modResults.contents, props);
44082815dcSEvan Bacon    } else {
45082815dcSEvan Bacon      (0, _warnings().addWarningAndroid)('withBuildScriptExtVersion', `Cannot automatically configure project build.gradle if it's not groovy`);
46082815dcSEvan Bacon    }
47082815dcSEvan Bacon    return config;
48082815dcSEvan Bacon  });
49082815dcSEvan Bacon};
50082815dcSEvan Baconexports.withBuildScriptExtMinimumVersion = withBuildScriptExtMinimumVersion;
51082815dcSEvan Baconfunction setMinBuildScriptExtVersion(buildGradle, {
52082815dcSEvan Bacon  name,
53082815dcSEvan Bacon  minVersion
54082815dcSEvan Bacon}) {
55082815dcSEvan Bacon  var _buildGradle$match;
56082815dcSEvan Bacon  const regex = new RegExp(`(${name}\\s?=\\s?)(\\d+(?:\\.\\d+)?)`);
57082815dcSEvan Bacon  const currentVersion = (_buildGradle$match = buildGradle.match(regex)) === null || _buildGradle$match === void 0 ? void 0 : _buildGradle$match[2];
58082815dcSEvan Bacon  if (!currentVersion) {
59*ee216927STomasz Sapeta    (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*ee216927STomasz Sapeta    // TODO: Maybe just add the property...
61082815dcSEvan Bacon    return buildGradle;
62082815dcSEvan Bacon  }
63082815dcSEvan Bacon  const currentVersionNum = Number(currentVersion);
64082815dcSEvan Bacon  return buildGradle.replace(regex, `$1${Math.max(minVersion, currentVersionNum)}`);
65082815dcSEvan Bacon}
66082815dcSEvan Baconfunction getVersionName(config) {
67082815dcSEvan Bacon  var _config$version;
68082815dcSEvan Bacon  return (_config$version = config.version) !== null && _config$version !== void 0 ? _config$version : null;
69082815dcSEvan Bacon}
70082815dcSEvan Baconfunction setVersionName(config, buildGradle) {
71082815dcSEvan Bacon  const versionName = getVersionName(config);
72082815dcSEvan Bacon  if (versionName === null) {
73082815dcSEvan Bacon    return buildGradle;
74082815dcSEvan Bacon  }
75082815dcSEvan Bacon  const pattern = new RegExp(`versionName ".*"`);
76082815dcSEvan Bacon  return buildGradle.replace(pattern, `versionName "${versionName}"`);
77082815dcSEvan Bacon}
78082815dcSEvan Baconfunction getVersionCode(config) {
79082815dcSEvan Bacon  var _config$android$versi, _config$android;
80082815dcSEvan Bacon  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;
81082815dcSEvan Bacon}
82082815dcSEvan Baconfunction setVersionCode(config, buildGradle) {
83082815dcSEvan Bacon  const versionCode = getVersionCode(config);
84082815dcSEvan Bacon  if (versionCode === null) {
85082815dcSEvan Bacon    return buildGradle;
86082815dcSEvan Bacon  }
87082815dcSEvan Bacon  const pattern = new RegExp(`versionCode.*`);
88082815dcSEvan Bacon  return buildGradle.replace(pattern, `versionCode ${versionCode}`);
89082815dcSEvan Bacon}
90082815dcSEvan Bacon//# sourceMappingURL=Version.js.map