@capacitor/cli 3.4.1 → 3.4.2

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.4.2](https://github.com/ionic-team/capacitor/compare/3.4.1...3.4.2) (2022-03-03)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **android:** compatibility with cordova kotlin plugins ([#5438](https://github.com/ionic-team/capacitor/issues/5438)) ([55bf004](https://github.com/ionic-team/capacitor/commit/55bf004897b3feb280ab6b6575d2a2c1a0a183e2))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [3.4.1](https://github.com/ionic-team/capacitor/compare/3.4.0...3.4.1) (2022-02-09)
7
18
 
8
19
 
Binary file
Binary file
@@ -166,7 +166,11 @@ if (hasProperty('postBuildExtras')) {
166
166
  }
167
167
  exports.installGradlePlugins = installGradlePlugins;
168
168
  async function handleCordovaPluginsGradle(config, cordovaPlugins) {
169
+ var _a, _b, _c;
169
170
  const pluginsGradlePath = path_1.join(config.android.cordovaPluginsDirAbs, 'build.gradle');
171
+ const kotlinNeeded = await kotlinNeededCheck(config, cordovaPlugins);
172
+ const isKotlinVersionInVariablesGradle = (await getVariablesGradleFile(config)).includes('kotlin_version');
173
+ const kotlinVersionString = (_c = (_b = (_a = config.app.extConfig.cordova) === null || _a === void 0 ? void 0 : _a.preferences) === null || _b === void 0 ? void 0 : _b.GradlePluginKotlinVersion) !== null && _c !== void 0 ? _c : '1.4.32';
170
174
  const frameworksArray = [];
171
175
  let prefsArray = [];
172
176
  const applyArray = [];
@@ -193,10 +197,24 @@ async function handleCordovaPluginsGradle(config, cordovaPlugins) {
193
197
  })
194
198
  .join('\n');
195
199
  frameworkString = await replaceFrameworkVariables(config, prefsArray, frameworkString);
200
+ if (kotlinNeeded) {
201
+ frameworkString += `\n implementation "androidx.core:core-ktx:$androidxCoreKTXVersion"`;
202
+ frameworkString += `\n implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"`;
203
+ }
196
204
  const applyString = applyArray.join('\n');
197
205
  let buildGradle = await utils_fs_1.readFile(pluginsGradlePath, { encoding: 'utf-8' });
198
206
  buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + frameworkString.concat('\n') + ' $2');
199
207
  buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + applyString.concat('\n') + '$2');
208
+ if (kotlinNeeded) {
209
+ buildGradle = buildGradle.replace(/(buildscript\s{\n(\t|\s{4})repositories\s{\n((\t{2}|\s{8}).+\n)+(\t|\s{4})}\n(\t|\s{4})dependencies\s{\n(\t{2}|\s{8}).+)\n((\t|\s{4})}\n}\n)/, `$1\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:` +
210
+ (isKotlinVersionInVariablesGradle
211
+ ? '$kotlin_version'
212
+ : kotlinVersionString) +
213
+ `"\n$8`);
214
+ buildGradle = buildGradle.replace(/(ext\s{)/, `$1\n kotlin_version = project.hasProperty('kotlin_version') ? rootProject.ext.kotlin_version : '${kotlinVersionString}'\n androidxCoreKTXVersion = project.hasProperty('androidxCoreKTXVersion') ? rootProject.ext.androidxCoreKTXVersion : '1.6.0'`);
215
+ buildGradle = buildGradle.replace(/(apply\splugin:\s'com\.android\.library')/, `$1\napply plugin: 'kotlin-android'`);
216
+ buildGradle = buildGradle.replace(/(compileOptions\s{\n((\t{2}|\s{8}).+\n)+(\t|\s{4})})\n(})/, `$1\n sourceSets {\n main.java.srcDirs += 'src/main/kotlin'\n }\n$5`);
217
+ }
200
218
  await utils_fs_1.writeFile(pluginsGradlePath, buildGradle);
201
219
  const cordovaVariables = `// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
202
220
  ext {
@@ -208,6 +226,25 @@ ext {
208
226
  await utils_fs_1.writeFile(path_1.join(config.android.cordovaPluginsDirAbs, 'cordova.variables.gradle'), cordovaVariables);
209
227
  }
210
228
  exports.handleCordovaPluginsGradle = handleCordovaPluginsGradle;
229
+ async function kotlinNeededCheck(config, cordovaPlugins) {
230
+ var _a, _b;
231
+ if (((_b = (_a = config.app.extConfig.cordova) === null || _a === void 0 ? void 0 : _a.preferences) === null || _b === void 0 ? void 0 : _b.GradlePluginKotlinEnabled) !==
232
+ 'true') {
233
+ for (const plugin of cordovaPlugins) {
234
+ const androidPlatform = plugin_1.getPluginPlatform(plugin, platform);
235
+ const srcFiles = androidPlatform['source-file'];
236
+ for (const srcFile of srcFiles) {
237
+ if (/^.*\.kt$/.test(srcFile['$'].src)) {
238
+ return true;
239
+ }
240
+ }
241
+ }
242
+ return false;
243
+ }
244
+ else {
245
+ return true;
246
+ }
247
+ }
211
248
  async function copyPluginsNativeFiles(config, cordovaPlugins) {
212
249
  const pluginsPath = path_1.join(config.android.cordovaPluginsDirAbs, 'src', 'main');
213
250
  for (const p of cordovaPlugins) {
@@ -257,12 +294,16 @@ async function getPluginsTask(config) {
257
294
  return androidPlugins;
258
295
  });
259
296
  }
260
- async function replaceFrameworkVariables(config, prefsArray, frameworkString) {
297
+ async function getVariablesGradleFile(config) {
261
298
  const variablesFile = path_1.resolve(config.android.platformDirAbs, 'variables.gradle');
262
299
  let variablesGradle = '';
263
300
  if (await utils_fs_1.pathExists(variablesFile)) {
264
301
  variablesGradle = await utils_fs_1.readFile(variablesFile, { encoding: 'utf-8' });
265
302
  }
303
+ return variablesGradle;
304
+ }
305
+ async function replaceFrameworkVariables(config, prefsArray, frameworkString) {
306
+ const variablesGradle = await getVariablesGradleFile(config);
266
307
  prefsArray.map((preference) => {
267
308
  if (!variablesGradle.includes(preference.$.name)) {
268
309
  frameworkString = frameworkString.replace(new RegExp(('$' + preference.$.name).replace('$', '\\$&'), 'g'), preference.$.default);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/cli",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "description": "Capacitor: Cross-platform apps with JavaScript and the web",
5
5
  "homepage": "https://capacitorjs.com",
6
6
  "author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "bc7b49ff2ad242fecff7bcb3900c627ff6880f7b"
88
+ "gitHead": "2e4a06b34d664c538ea96dde6be2abea99acb468"
89
89
  }