@akylas/nativescript-cli 8.8.2 → 8.8.4

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 (275) hide show
  1. package/lib/android-tools-info.js +9 -20
  2. package/lib/base-package-manager.js +47 -64
  3. package/lib/bun-package-manager.js +65 -88
  4. package/lib/color.js +2 -2
  5. package/lib/commands/add-platform.js +14 -30
  6. package/lib/commands/apple-login.js +18 -29
  7. package/lib/commands/appstore-list.js +34 -45
  8. package/lib/commands/appstore-upload.js +55 -68
  9. package/lib/commands/build.js +57 -86
  10. package/lib/commands/clean.js +161 -176
  11. package/lib/commands/command-base.js +14 -27
  12. package/lib/commands/config.js +51 -70
  13. package/lib/commands/create-project.js +210 -229
  14. package/lib/commands/debug.js +66 -88
  15. package/lib/commands/deploy.js +28 -44
  16. package/lib/commands/embedding/embed.js +33 -52
  17. package/lib/commands/extensibility/install-extension.js +5 -16
  18. package/lib/commands/extensibility/list-extensions.js +13 -24
  19. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  20. package/lib/commands/fonts.js +30 -41
  21. package/lib/commands/generate-assets.js +13 -28
  22. package/lib/commands/generate-help.js +2 -13
  23. package/lib/commands/generate.js +17 -26
  24. package/lib/commands/info.js +2 -13
  25. package/lib/commands/install.js +34 -49
  26. package/lib/commands/list-platforms.js +14 -25
  27. package/lib/commands/migrate.js +15 -26
  28. package/lib/commands/native-add.js +23 -46
  29. package/lib/commands/platform-clean.js +19 -32
  30. package/lib/commands/plugin/add-plugin.js +12 -25
  31. package/lib/commands/plugin/build-plugin.js +34 -39
  32. package/lib/commands/plugin/create-plugin.js +110 -133
  33. package/lib/commands/plugin/list-plugins.js +22 -33
  34. package/lib/commands/plugin/remove-plugin.js +20 -33
  35. package/lib/commands/plugin/update-plugin.js +20 -33
  36. package/lib/commands/post-install.js +20 -33
  37. package/lib/commands/prepare.js +19 -35
  38. package/lib/commands/preview.js +49 -62
  39. package/lib/commands/remove-platform.js +7 -18
  40. package/lib/commands/resources/resources-update.js +13 -26
  41. package/lib/commands/run.js +55 -76
  42. package/lib/commands/start.js +6 -19
  43. package/lib/commands/test-init.js +123 -134
  44. package/lib/commands/test.js +66 -89
  45. package/lib/commands/typings.js +126 -142
  46. package/lib/commands/update-platform.js +22 -35
  47. package/lib/commands/update.js +30 -43
  48. package/lib/common/child-process.js +53 -72
  49. package/lib/common/codeGeneration/code-entity.js +1 -1
  50. package/lib/common/codeGeneration/code-printer.js +1 -1
  51. package/lib/common/command-params.js +7 -18
  52. package/lib/common/commands/analytics.js +27 -40
  53. package/lib/common/commands/autocompletion.js +39 -56
  54. package/lib/common/commands/device/device-log-stream.js +12 -23
  55. package/lib/common/commands/device/get-file.js +22 -33
  56. package/lib/common/commands/device/list-applications.js +12 -23
  57. package/lib/common/commands/device/list-devices.js +72 -87
  58. package/lib/common/commands/device/list-files.js +23 -34
  59. package/lib/common/commands/device/put-file.js +22 -33
  60. package/lib/common/commands/device/run-application.js +12 -25
  61. package/lib/common/commands/device/stop-application.js +11 -22
  62. package/lib/common/commands/device/uninstall-application.js +6 -17
  63. package/lib/common/commands/generate-messages.js +17 -28
  64. package/lib/common/commands/help.js +20 -33
  65. package/lib/common/commands/package-manager-get.js +6 -17
  66. package/lib/common/commands/package-manager-set.js +9 -20
  67. package/lib/common/commands/post-install.js +2 -13
  68. package/lib/common/commands/preuninstall.js +23 -38
  69. package/lib/common/commands/proxy/proxy-base.js +8 -19
  70. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  71. package/lib/common/commands/proxy/proxy-get.js +3 -14
  72. package/lib/common/commands/proxy/proxy-set.js +87 -100
  73. package/lib/common/constants.js +11 -11
  74. package/lib/common/decorators.js +10 -22
  75. package/lib/common/dispatchers.js +79 -96
  76. package/lib/common/errors.js +89 -104
  77. package/lib/common/file-system.js +106 -127
  78. package/lib/common/header.js +1 -2
  79. package/lib/common/helpers.js +149 -178
  80. package/lib/common/host-info.js +37 -50
  81. package/lib/common/http-client.js +93 -108
  82. package/lib/common/logger/appenders/cli-appender.js +1 -2
  83. package/lib/common/logger/appenders/emit-appender.js +1 -2
  84. package/lib/common/logger/layouts/cli-layout.js +1 -2
  85. package/lib/common/logger/logger.js +1 -1
  86. package/lib/common/mobile/android/android-application-manager.js +121 -142
  87. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  88. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  89. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  90. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  91. package/lib/common/mobile/android/android-device.js +74 -91
  92. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  93. package/lib/common/mobile/android/android-log-filter.js +1 -1
  94. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  95. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  96. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  97. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  98. package/lib/common/mobile/android/logcat-helper.js +108 -127
  99. package/lib/common/mobile/application-manager-base.js +84 -107
  100. package/lib/common/mobile/device-log-provider-base.js +7 -18
  101. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  102. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  103. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  104. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  105. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  106. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  107. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  108. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  109. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  110. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  111. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  112. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  113. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  114. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  115. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  116. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  117. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  118. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  119. package/lib/common/mobile/mobile-helper.js +15 -26
  120. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  121. package/lib/common/opener.js +2 -2
  122. package/lib/common/plist-parser.js +3 -3
  123. package/lib/common/prompter.js +90 -105
  124. package/lib/common/queue.js +9 -20
  125. package/lib/common/services/auto-completion-service.js +39 -52
  126. package/lib/common/services/cancellation.js +17 -28
  127. package/lib/common/services/commands-service.js +146 -169
  128. package/lib/common/services/help-service.js +132 -157
  129. package/lib/common/services/hooks-service.js +93 -108
  130. package/lib/common/services/ios-notification-service.js +21 -34
  131. package/lib/common/services/json-file-settings-service.js +52 -71
  132. package/lib/common/services/lock-service.js +35 -52
  133. package/lib/common/services/message-contract-generator.js +35 -46
  134. package/lib/common/services/micro-templating-service.js +4 -15
  135. package/lib/common/services/net-service.js +90 -107
  136. package/lib/common/services/project-files-manager.js +10 -23
  137. package/lib/common/services/proxy-service.js +13 -24
  138. package/lib/common/services/qr.js +13 -24
  139. package/lib/common/services/settings-service.js +1 -1
  140. package/lib/common/services/xcode-select-service.js +20 -35
  141. package/lib/common/utils.js +2 -2
  142. package/lib/common/validators/project-name-validator.js +1 -1
  143. package/lib/common/validators/validation-result.js +1 -1
  144. package/lib/common/verify-node-version.js +2 -3
  145. package/lib/common/yok.js +23 -36
  146. package/lib/config.js +7 -58
  147. package/lib/constants.js +24 -24
  148. package/lib/controllers/build-controller.js +82 -99
  149. package/lib/controllers/debug-controller.js +107 -128
  150. package/lib/controllers/deploy-controller.js +17 -22
  151. package/lib/controllers/migrate-controller.js +722 -795
  152. package/lib/controllers/platform-controller.js +72 -87
  153. package/lib/controllers/prepare-controller.js +266 -299
  154. package/lib/controllers/run-controller.js +392 -406
  155. package/lib/controllers/update-controller-base.js +16 -29
  156. package/lib/controllers/update-controller.js +94 -119
  157. package/lib/data/prepare-data.js +4 -1
  158. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  159. package/lib/definitions/livesync.d.ts +1 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +45 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +161 -211
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +161 -198
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +34 -47
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +230 -256
  194. package/lib/services/android-project-service.js +163 -199
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  198. package/lib/services/assets-generation/assets-generation-service.js +98 -115
  199. package/lib/services/build-artifacts-service.js +9 -20
  200. package/lib/services/build-info-file-service.js +20 -35
  201. package/lib/services/cleanup-service.js +47 -76
  202. package/lib/services/cocoapods-service.js +115 -136
  203. package/lib/services/device/device-install-app-service.js +73 -90
  204. package/lib/services/doctor-service.js +99 -118
  205. package/lib/services/extensibility-service.js +81 -100
  206. package/lib/services/files-hash-service.js +26 -43
  207. package/lib/services/hmr-status-service.js +1 -1
  208. package/lib/services/initialize-service.js +37 -50
  209. package/lib/services/ios/export-options-plist-service.js +38 -51
  210. package/lib/services/ios/ios-signing-service.js +161 -180
  211. package/lib/services/ios/spm-service.js +40 -53
  212. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  213. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  214. package/lib/services/ios/xcodebuild-service.js +50 -69
  215. package/lib/services/ios-debugger-port-service.js +23 -36
  216. package/lib/services/ios-device-debug-service.js +75 -102
  217. package/lib/services/ios-entitlements-service.js +31 -42
  218. package/lib/services/ios-extensions-service.js +18 -29
  219. package/lib/services/ios-project-service.js +405 -460
  220. package/lib/services/ios-provision-service.js +108 -129
  221. package/lib/services/ios-watch-app-service.js +21 -32
  222. package/lib/services/ip-service.js +38 -53
  223. package/lib/services/itmstransporter-service.js +129 -152
  224. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  225. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  226. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  227. package/lib/services/livesync/android-livesync-service.js +14 -35
  228. package/lib/services/livesync/android-livesync-tool.js +89 -112
  229. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  230. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  231. package/lib/services/livesync/ios-livesync-service.js +42 -58
  232. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  233. package/lib/services/log-parser-service.js +1 -1
  234. package/lib/services/log-source-map-service.js +30 -41
  235. package/lib/services/marking-mode-service.js +15 -28
  236. package/lib/services/npm-config-service.js +1 -1
  237. package/lib/services/pacote-service.js +49 -64
  238. package/lib/services/performance-service.js +1 -1
  239. package/lib/services/platform/add-platform-service.js +50 -71
  240. package/lib/services/platform/platform-validation-service.js +22 -33
  241. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  242. package/lib/services/platform-environment-requirements.js +26 -37
  243. package/lib/services/plugins-service.js +122 -147
  244. package/lib/services/project-backup-service.js +1 -1
  245. package/lib/services/project-changes-service.js +124 -141
  246. package/lib/services/project-cleanup-service.js +64 -77
  247. package/lib/services/project-config-service.js +71 -80
  248. package/lib/services/project-data-service.js +101 -118
  249. package/lib/services/project-name-service.js +28 -43
  250. package/lib/services/project-service.js +84 -103
  251. package/lib/services/project-templates-service.js +52 -67
  252. package/lib/services/start-service.js +41 -59
  253. package/lib/services/temp-service.js +8 -21
  254. package/lib/services/terminal-spinner-service.js +13 -24
  255. package/lib/services/test-execution-service.js +59 -72
  256. package/lib/services/test-initialization-service.js +2 -2
  257. package/lib/services/timeline-profiler-service.js +1 -1
  258. package/lib/services/versions-service.js +119 -138
  259. package/lib/services/webpack/webpack-compiler-service.js +211 -231
  260. package/lib/services/xcconfig-service.js +8 -19
  261. package/lib/sys-info.js +45 -62
  262. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  263. package/lib/yarn-package-manager.js +59 -78
  264. package/lib/yarn2-package-manager.js +60 -79
  265. package/package.json +56 -54
  266. package/vendor/aab-tool/bundletool.jar +0 -0
  267. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  268. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  269. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  270. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  271. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  272. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  273. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  274. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  275. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AndroidPluginBuildService = void 0;
19
10
  const path = require("path");
@@ -61,25 +52,23 @@ class AndroidPluginBuildService {
61
52
  const manifest = path.join(platformsDir, constants_1.MANIFEST_FILE_NAME);
62
53
  return this.$fs.exists(manifest) ? manifest : null;
63
54
  }
64
- updateManifestContent(oldManifestContent, defaultPackageName) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- let xml = yield this.getXml(oldManifestContent);
67
- let packageName = defaultPackageName;
68
- if (xml["manifest"]) {
69
- if (xml["manifest"]["$"]["package"]) {
70
- packageName = xml["manifest"]["$"]["package"];
71
- }
72
- xml = xml["manifest"];
73
- }
74
- const newManifest = { manifest: {} };
75
- for (const prop in xml) {
76
- newManifest.manifest[prop] = xml[prop];
77
- }
78
- newManifest.manifest["$"]["package"] = packageName;
79
- const xmlBuilder = new xml2js_1.Builder();
80
- const newManifestContent = xmlBuilder.buildObject(newManifest);
81
- return newManifestContent;
82
- });
55
+ async updateManifestContent(oldManifestContent, defaultPackageName) {
56
+ let xml = await this.getXml(oldManifestContent);
57
+ let packageName = defaultPackageName;
58
+ if (xml["manifest"]) {
59
+ if (xml["manifest"]["$"]["package"]) {
60
+ packageName = xml["manifest"]["$"]["package"];
61
+ }
62
+ xml = xml["manifest"];
63
+ }
64
+ const newManifest = { manifest: {} };
65
+ for (const prop in xml) {
66
+ newManifest.manifest[prop] = xml[prop];
67
+ }
68
+ newManifest.manifest["$"]["package"] = packageName;
69
+ const xmlBuilder = new xml2js_1.Builder();
70
+ const newManifestContent = xmlBuilder.buildObject(newManifest);
71
+ return newManifestContent;
83
72
  }
84
73
  createManifestContent(packageName) {
85
74
  const newManifest = {
@@ -90,18 +79,16 @@ class AndroidPluginBuildService {
90
79
  const newManifestContent = xmlBuilder.buildObject(newManifest);
91
80
  return newManifestContent;
92
81
  }
93
- getXml(stringContent) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const promise = new Promise((resolve, reject) => (0, xml2js_1.parseString)(stringContent, (err, result) => {
96
- if (err) {
97
- reject(err);
98
- }
99
- else {
100
- resolve(result);
101
- }
102
- }));
103
- return promise;
104
- });
82
+ async getXml(stringContent) {
83
+ const promise = new Promise((resolve, reject) => (0, xml2js_1.parseString)(stringContent, (err, result) => {
84
+ if (err) {
85
+ reject(err);
86
+ }
87
+ else {
88
+ resolve(result);
89
+ }
90
+ }));
91
+ return promise;
105
92
  }
106
93
  getScope(scopeName, content) {
107
94
  const indexOfScopeName = content.indexOf(scopeName);
@@ -130,42 +117,40 @@ class AndroidPluginBuildService {
130
117
  }
131
118
  return result;
132
119
  }
133
- buildAar(options) {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- this.validateOptions(options);
136
- const manifestFilePath = this.getManifest(options.platformsAndroidDirPath);
137
- const androidSourceDirectories = this.getAndroidSourceDirectories(options.platformsAndroidDirPath);
138
- const shortPluginName = (0, helpers_1.getShortPluginName)(options.pluginName + (options.aarSuffix || ''));
139
- const pluginTempDir = path.join(options.tempPluginDirPath, shortPluginName);
140
- const pluginSourceFileHashesInfo = yield this.getSourceFilesHashes(options.platformsAndroidDirPath, shortPluginName);
141
- const shouldBuildAar = yield this.shouldBuildAar({
142
- manifestFilePath,
143
- androidSourceDirectories,
144
- pluginTempDir,
145
- pluginSourceDir: options.platformsAndroidDirPath,
146
- shortPluginName,
147
- fileHashesInfo: pluginSourceFileHashesInfo,
148
- });
149
- if (shouldBuildAar) {
150
- this.cleanPluginDir(pluginTempDir);
151
- const pluginTempMainSrcDir = path.join(pluginTempDir, "src", "main");
152
- yield this.updateManifest(manifestFilePath, pluginTempMainSrcDir, shortPluginName);
153
- this.copySourceSetDirectories(androidSourceDirectories, pluginTempMainSrcDir);
154
- yield this.setupGradle(pluginTempDir, options.platformsAndroidDirPath, options.projectDir, options.pluginName);
155
- const gradleArgs = (this.$projectData.nsConfig.android.gradleArgs || []).concat(options.gradleArgs || []);
156
- yield this.buildPlugin({
157
- gradlePath: options.gradlePath,
158
- gradleArgs,
159
- pluginDir: pluginTempDir,
160
- pluginName: options.pluginName,
161
- projectDir: options.projectDir,
162
- });
163
- this.$watchIgnoreListService.addFileToIgnoreList(path.join(options.aarOutputDir, `${shortPluginName}.aar`));
164
- this.copyAar(shortPluginName, pluginTempDir, options.aarOutputDir);
165
- this.writePluginHashInfo(pluginSourceFileHashesInfo, pluginTempDir);
166
- }
167
- return shouldBuildAar;
120
+ async buildAar(options) {
121
+ this.validateOptions(options);
122
+ const manifestFilePath = this.getManifest(options.platformsAndroidDirPath);
123
+ const androidSourceDirectories = this.getAndroidSourceDirectories(options.platformsAndroidDirPath);
124
+ const shortPluginName = (0, helpers_1.getShortPluginName)(options.pluginName + (options.aarSuffix || ''));
125
+ const pluginTempDir = path.join(options.tempPluginDirPath, shortPluginName);
126
+ const pluginSourceFileHashesInfo = await this.getSourceFilesHashes(options.platformsAndroidDirPath, shortPluginName);
127
+ const shouldBuildAar = await this.shouldBuildAar({
128
+ manifestFilePath,
129
+ androidSourceDirectories,
130
+ pluginTempDir,
131
+ pluginSourceDir: options.platformsAndroidDirPath,
132
+ shortPluginName,
133
+ fileHashesInfo: pluginSourceFileHashesInfo,
168
134
  });
135
+ if (shouldBuildAar) {
136
+ this.cleanPluginDir(pluginTempDir);
137
+ const pluginTempMainSrcDir = path.join(pluginTempDir, "src", "main");
138
+ await this.updateManifest(manifestFilePath, pluginTempMainSrcDir, shortPluginName);
139
+ this.copySourceSetDirectories(androidSourceDirectories, pluginTempMainSrcDir);
140
+ await this.setupGradle(pluginTempDir, options.platformsAndroidDirPath, options.projectDir, options.pluginName);
141
+ const gradleArgs = (this.$projectData.nsConfig.android.gradleArgs || []).concat(options.gradleArgs || []);
142
+ await this.buildPlugin({
143
+ gradlePath: options.gradlePath,
144
+ gradleArgs,
145
+ pluginDir: pluginTempDir,
146
+ pluginName: options.pluginName,
147
+ projectDir: options.projectDir,
148
+ });
149
+ this.$watchIgnoreListService.addFileToIgnoreList(path.join(options.aarOutputDir, `${shortPluginName}.aar`));
150
+ this.copyAar(shortPluginName, pluginTempDir, options.aarOutputDir);
151
+ this.writePluginHashInfo(pluginSourceFileHashesInfo, pluginTempDir);
152
+ }
153
+ return shouldBuildAar;
169
154
  }
170
155
  cleanPluginDir(pluginTempDir) {
171
156
  this.$fs.deleteDirectory(pluginTempDir);
@@ -180,50 +165,46 @@ class AndroidPluginBuildService {
180
165
  const buildDataFile = this.getPathToPluginBuildDataFile(pluginTempDir);
181
166
  this.$fs.writeJson(buildDataFile, fileHashesInfo);
182
167
  }
183
- shouldBuildAar(opts) {
184
- return __awaiter(this, void 0, void 0, function* () {
185
- let shouldBuildAar = !!opts.manifestFilePath || !!opts.androidSourceDirectories.length;
186
- if (shouldBuildAar &&
187
- this.$fs.exists(opts.pluginTempDir) &&
188
- this.$fs.exists(path.join(opts.pluginSourceDir, `${opts.shortPluginName}.aar`))) {
189
- const buildDataFile = this.getPathToPluginBuildDataFile(opts.pluginTempDir);
190
- if (this.$fs.exists(buildDataFile)) {
191
- const oldHashes = this.$fs.readJson(buildDataFile);
192
- shouldBuildAar = this.$filesHashService.hasChangesInShasums(oldHashes, opts.fileHashesInfo);
193
- }
168
+ async shouldBuildAar(opts) {
169
+ let shouldBuildAar = !!opts.manifestFilePath || !!opts.androidSourceDirectories.length;
170
+ if (shouldBuildAar &&
171
+ this.$fs.exists(opts.pluginTempDir) &&
172
+ this.$fs.exists(path.join(opts.pluginSourceDir, `${opts.shortPluginName}.aar`))) {
173
+ const buildDataFile = this.getPathToPluginBuildDataFile(opts.pluginTempDir);
174
+ if (this.$fs.exists(buildDataFile)) {
175
+ const oldHashes = this.$fs.readJson(buildDataFile);
176
+ shouldBuildAar = this.$filesHashService.hasChangesInShasums(oldHashes, opts.fileHashesInfo);
194
177
  }
195
- return shouldBuildAar;
196
- });
178
+ }
179
+ return shouldBuildAar;
197
180
  }
198
181
  getPathToPluginBuildDataFile(pluginDir) {
199
182
  return path.join(pluginDir, constants_1.PLUGIN_BUILD_DATA_FILENAME);
200
183
  }
201
- updateManifest(manifestFilePath, pluginTempMainSrcDir, shortPluginName) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- let updatedManifestContent;
204
- this.$fs.ensureDirectoryExists(pluginTempMainSrcDir);
205
- const defaultPackageName = "org.nativescript." + shortPluginName;
206
- if (manifestFilePath) {
207
- let androidManifestContent;
208
- try {
209
- androidManifestContent = this.$fs.readText(manifestFilePath);
210
- }
211
- catch (err) {
212
- this.$errors.fail(`Failed to fs.readFileSync the manifest file located at ${manifestFilePath}. Error is: ${err.toString()}`);
213
- }
214
- updatedManifestContent = yield this.updateManifestContent(androidManifestContent, defaultPackageName);
215
- }
216
- else {
217
- updatedManifestContent = this.createManifestContent(defaultPackageName);
218
- }
219
- const pathToTempAndroidManifest = path.join(pluginTempMainSrcDir, constants_1.MANIFEST_FILE_NAME);
184
+ async updateManifest(manifestFilePath, pluginTempMainSrcDir, shortPluginName) {
185
+ let updatedManifestContent;
186
+ this.$fs.ensureDirectoryExists(pluginTempMainSrcDir);
187
+ const defaultPackageName = "org.nativescript." + shortPluginName;
188
+ if (manifestFilePath) {
189
+ let androidManifestContent;
220
190
  try {
221
- this.$fs.writeFile(pathToTempAndroidManifest, updatedManifestContent);
191
+ androidManifestContent = this.$fs.readText(manifestFilePath);
222
192
  }
223
- catch (e) {
224
- this.$errors.fail(`Failed to write the updated AndroidManifest in the new location - ${pathToTempAndroidManifest}. Error is: ${e.toString()}`);
193
+ catch (err) {
194
+ this.$errors.fail(`Failed to fs.readFileSync the manifest file located at ${manifestFilePath}. Error is: ${err.toString()}`);
225
195
  }
226
- });
196
+ updatedManifestContent = await this.updateManifestContent(androidManifestContent, defaultPackageName);
197
+ }
198
+ else {
199
+ updatedManifestContent = this.createManifestContent(defaultPackageName);
200
+ }
201
+ const pathToTempAndroidManifest = path.join(pluginTempMainSrcDir, constants_1.MANIFEST_FILE_NAME);
202
+ try {
203
+ this.$fs.writeFile(pathToTempAndroidManifest, updatedManifestContent);
204
+ }
205
+ catch (e) {
206
+ this.$errors.fail(`Failed to write the updated AndroidManifest in the new location - ${pathToTempAndroidManifest}. Error is: ${e.toString()}`);
207
+ }
227
208
  }
228
209
  copySourceSetDirectories(androidSourceSetDirectories, pluginTempMainSrcDir) {
229
210
  for (const dir of androidSourceSetDirectories) {
@@ -245,78 +226,72 @@ class AndroidPluginBuildService {
245
226
  }
246
227
  return namespace;
247
228
  }
248
- setupGradle(pluginTempDir, platformsAndroidDirPath, projectDir, pluginName) {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- const gradleTemplatePath = path.resolve(path.join(__dirname, "../../vendor/gradle-plugin"));
251
- const allGradleTemplateFiles = path.join(gradleTemplatePath, "*");
252
- const buildGradlePath = path.join(pluginTempDir, "build.gradle");
253
- const settingsGradlePath = path.join(pluginTempDir, "settings.gradle");
254
- this.$fs.copyFile(allGradleTemplateFiles, pluginTempDir);
255
- const runtimeGradleVersions = yield this.getRuntimeGradleVersions(projectDir);
256
- let gradleVersion = runtimeGradleVersions.gradleVersion;
257
- if (this.$projectData.nsConfig.android.gradleVersion) {
258
- gradleVersion = this.$projectData.nsConfig.android.gradleVersion;
259
- }
260
- this.replaceGradleVersion(pluginTempDir, gradleVersion);
261
- this.replaceGradleAndroidPluginVersion(buildGradlePath, runtimeGradleVersions.gradleAndroidPluginVersion);
262
- const manifestFilePath = this.getManifest(path.join(pluginTempDir, "src", "main"));
263
- let pluginNamespace = this.extractNamespaceFromManifest(manifestFilePath);
264
- if (!pluginNamespace) {
265
- pluginNamespace = pluginName.replace(/@/g, "").replace(/[/-]/g, ".");
266
- }
267
- this.replaceFileContent(buildGradlePath, "{{pluginNamespace}}", pluginNamespace);
268
- this.replaceFileContent(buildGradlePath, "{{pluginName}}", pluginName);
269
- this.replaceFileContent(settingsGradlePath, "{{pluginName}}", pluginName);
270
- const shortPluginName = (0, helpers_1.getShortPluginName)(pluginName);
271
- const manifestPath = path.join(pluginTempDir, "src", "main", "AndroidManifest.xml");
272
- const manifestContent = this.$fs.readText(manifestPath);
273
- let packageName = `org.nativescript.${shortPluginName}`;
274
- const xml = yield this.getXml(manifestContent);
275
- if (xml["manifest"]) {
276
- if (xml["manifest"]["$"]["package"]) {
277
- packageName = xml["manifest"]["$"]["package"];
278
- }
229
+ async setupGradle(pluginTempDir, platformsAndroidDirPath, projectDir, pluginName) {
230
+ const gradleTemplatePath = path.resolve(path.join(__dirname, "../../vendor/gradle-plugin"));
231
+ const allGradleTemplateFiles = path.join(gradleTemplatePath, "*");
232
+ const buildGradlePath = path.join(pluginTempDir, "build.gradle");
233
+ const settingsGradlePath = path.join(pluginTempDir, "settings.gradle");
234
+ this.$fs.copyFile(allGradleTemplateFiles, pluginTempDir);
235
+ const runtimeGradleVersions = await this.getRuntimeGradleVersions(projectDir);
236
+ let gradleVersion = runtimeGradleVersions.gradleVersion;
237
+ if (this.$projectData.nsConfig.android.gradleVersion) {
238
+ gradleVersion = this.$projectData.nsConfig.android.gradleVersion;
239
+ }
240
+ this.replaceGradleVersion(pluginTempDir, gradleVersion);
241
+ this.replaceGradleAndroidPluginVersion(buildGradlePath, runtimeGradleVersions.gradleAndroidPluginVersion);
242
+ const manifestFilePath = this.getManifest(path.join(pluginTempDir, "src", "main"));
243
+ let pluginNamespace = this.extractNamespaceFromManifest(manifestFilePath);
244
+ if (!pluginNamespace) {
245
+ pluginNamespace = pluginName.replace(/@/g, "").replace(/[/-]/g, ".");
246
+ }
247
+ this.replaceFileContent(buildGradlePath, "{{pluginNamespace}}", pluginNamespace);
248
+ this.replaceFileContent(buildGradlePath, "{{pluginName}}", pluginName);
249
+ this.replaceFileContent(settingsGradlePath, "{{pluginName}}", pluginName);
250
+ const shortPluginName = (0, helpers_1.getShortPluginName)(pluginName);
251
+ const manifestPath = path.join(pluginTempDir, "src", "main", "AndroidManifest.xml");
252
+ const manifestContent = this.$fs.readText(manifestPath);
253
+ let packageName = `org.nativescript.${shortPluginName}`;
254
+ const xml = await this.getXml(manifestContent);
255
+ if (xml["manifest"]) {
256
+ if (xml["manifest"]["$"]["package"]) {
257
+ packageName = xml["manifest"]["$"]["package"];
279
258
  }
280
- this.replaceFileContent(buildGradlePath, "{{pluginNamespace}}", packageName);
281
- });
259
+ }
260
+ this.replaceFileContent(buildGradlePath, "{{pluginNamespace}}", packageName);
282
261
  }
283
- getRuntimeGradleVersions(projectDir) {
284
- return __awaiter(this, void 0, void 0, function* () {
285
- let runtimeGradleVersions = null;
286
- if (projectDir) {
287
- const projectData = this.$projectDataService.getProjectData(projectDir);
288
- const platformData = this.$platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, projectData);
289
- const projectRuntimeVersion = platformData.platformProjectService.getFrameworkVersion(projectData);
290
- runtimeGradleVersions = yield this.getGradleVersions(projectRuntimeVersion);
291
- this.$logger.trace(`Got gradle versions ${JSON.stringify(runtimeGradleVersions)} from runtime v${projectRuntimeVersion}`);
292
- }
293
- if (!runtimeGradleVersions) {
294
- const latestRuntimeVersion = yield this.getLatestRuntimeVersion();
295
- runtimeGradleVersions = yield this.getGradleVersions(latestRuntimeVersion);
296
- this.$logger.trace(`Got gradle versions ${JSON.stringify(runtimeGradleVersions)} from the latest runtime v${latestRuntimeVersion}`);
297
- }
298
- return runtimeGradleVersions || {};
299
- });
262
+ async getRuntimeGradleVersions(projectDir) {
263
+ let runtimeGradleVersions = null;
264
+ if (projectDir) {
265
+ const projectData = this.$projectDataService.getProjectData(projectDir);
266
+ const platformData = this.$platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, projectData);
267
+ const projectRuntimeVersion = platformData.platformProjectService.getFrameworkVersion(projectData);
268
+ runtimeGradleVersions = await this.getGradleVersions(projectRuntimeVersion);
269
+ this.$logger.trace(`Got gradle versions ${JSON.stringify(runtimeGradleVersions)} from runtime v${projectRuntimeVersion}`);
270
+ }
271
+ if (!runtimeGradleVersions) {
272
+ const latestRuntimeVersion = await this.getLatestRuntimeVersion();
273
+ runtimeGradleVersions = await this.getGradleVersions(latestRuntimeVersion);
274
+ this.$logger.trace(`Got gradle versions ${JSON.stringify(runtimeGradleVersions)} from the latest runtime v${latestRuntimeVersion}`);
275
+ }
276
+ return runtimeGradleVersions || {};
300
277
  }
301
- getLatestRuntimeVersion() {
278
+ async getLatestRuntimeVersion() {
302
279
  var _a, _b;
303
- return __awaiter(this, void 0, void 0, function* () {
304
- let runtimeVersion = null;
305
- const packageName = ((_a = this.$projectData.nsConfig.android) === null || _a === void 0 ? void 0 : _a.runtimePackageName) || constants_1.SCOPED_ANDROID_RUNTIME_NAME;
306
- try {
307
- let result = yield this.$packageManager.view(packageName, {
308
- "dist-tags": true,
309
- });
310
- result = (_b = result === null || result === void 0 ? void 0 : result["dist-tags"]) !== null && _b !== void 0 ? _b : result;
311
- runtimeVersion = result.latest;
312
- }
313
- catch (err) {
314
- this.$logger.trace(`Error while getting latest android runtime version from view command: ${err}`);
315
- const registryData = yield this.$packageManager.getRegistryPackageData(packageName);
316
- runtimeVersion = registryData["dist-tags"].latest;
317
- }
318
- return runtimeVersion;
319
- });
280
+ let runtimeVersion = null;
281
+ const packageName = ((_a = this.$projectData.nsConfig.android) === null || _a === void 0 ? void 0 : _a.runtimePackageName) || constants_1.SCOPED_ANDROID_RUNTIME_NAME;
282
+ try {
283
+ let result = await this.$packageManager.view(packageName, {
284
+ "dist-tags": true,
285
+ });
286
+ result = (_b = result === null || result === void 0 ? void 0 : result["dist-tags"]) !== null && _b !== void 0 ? _b : result;
287
+ runtimeVersion = result.latest;
288
+ }
289
+ catch (err) {
290
+ this.$logger.trace(`Error while getting latest android runtime version from view command: ${err}`);
291
+ const registryData = await this.$packageManager.getRegistryPackageData(packageName);
292
+ runtimeVersion = registryData["dist-tags"].latest;
293
+ }
294
+ return runtimeVersion;
320
295
  }
321
296
  getLocalGradleVersions() {
322
297
  var _a;
@@ -347,37 +322,35 @@ class AndroidPluginBuildService {
347
322
  }
348
323
  return null;
349
324
  }
350
- getGradleVersions(runtimeVersion) {
325
+ async getGradleVersions(runtimeVersion) {
351
326
  var _a, _b, _c;
352
- return __awaiter(this, void 0, void 0, function* () {
353
- let runtimeGradleVersions = null;
354
- const localVersionInfo = this.getLocalGradleVersions();
355
- if (localVersionInfo) {
356
- return localVersionInfo;
357
- }
358
- const packageName = ((_a = this.$projectData.nsConfig.android) === null || _a === void 0 ? void 0 : _a.runtimePackageName) || constants_1.SCOPED_ANDROID_RUNTIME_NAME;
359
- try {
360
- let output = yield this.$packageManager.view(`${packageName}@${runtimeVersion}`, { version_info: true });
361
- output = (_b = output === null || output === void 0 ? void 0 : output["version_info"]) !== null && _b !== void 0 ? _b : output;
362
- if (!output) {
363
- output = yield this.$packageManager.view(`${packageName}@${runtimeVersion}`, { gradle: true });
364
- output = (_c = output === null || output === void 0 ? void 0 : output["gradle"]) !== null && _c !== void 0 ? _c : output;
365
- const { version, android } = output;
366
- output = {
367
- gradle: version,
368
- gradleAndroid: android,
369
- };
370
- }
371
- runtimeGradleVersions = { versions: output };
372
- }
373
- catch (err) {
374
- this.$logger.trace(`Error while getting gradle data for android runtime from view command: ${err}`);
375
- const registryData = yield this.$packageManager.getRegistryPackageData(packageName);
376
- runtimeGradleVersions = registryData.versions[runtimeVersion];
377
- }
378
- const result = this.getGradleVersionsCore(runtimeGradleVersions);
379
- return result;
380
- });
327
+ let runtimeGradleVersions = null;
328
+ const localVersionInfo = this.getLocalGradleVersions();
329
+ if (localVersionInfo) {
330
+ return localVersionInfo;
331
+ }
332
+ const packageName = ((_a = this.$projectData.nsConfig.android) === null || _a === void 0 ? void 0 : _a.runtimePackageName) || constants_1.SCOPED_ANDROID_RUNTIME_NAME;
333
+ try {
334
+ let output = await this.$packageManager.view(`${packageName}@${runtimeVersion}`, { version_info: true });
335
+ output = (_b = output === null || output === void 0 ? void 0 : output["version_info"]) !== null && _b !== void 0 ? _b : output;
336
+ if (!output) {
337
+ output = await this.$packageManager.view(`${packageName}@${runtimeVersion}`, { gradle: true });
338
+ output = (_c = output === null || output === void 0 ? void 0 : output["gradle"]) !== null && _c !== void 0 ? _c : output;
339
+ const { version, android } = output;
340
+ output = {
341
+ gradle: version,
342
+ gradleAndroid: android,
343
+ };
344
+ }
345
+ runtimeGradleVersions = { versions: output };
346
+ }
347
+ catch (err) {
348
+ this.$logger.trace(`Error while getting gradle data for android runtime from view command: ${err}`);
349
+ const registryData = await this.$packageManager.getRegistryPackageData(packageName);
350
+ runtimeGradleVersions = registryData.versions[runtimeVersion];
351
+ }
352
+ const result = this.getGradleVersionsCore(runtimeGradleVersions);
353
+ return result;
381
354
  }
382
355
  getGradleVersionsCore(packageData) {
383
356
  const packageJsonGradle = packageData && packageData.versions;
@@ -453,55 +426,56 @@ class AndroidPluginBuildService {
453
426
  }
454
427
  return false;
455
428
  }
456
- buildPlugin(pluginBuildSettings) {
429
+ async buildPlugin(pluginBuildSettings) {
457
430
  var _a;
458
- return __awaiter(this, void 0, void 0, function* () {
459
- const gradlew = (_a = pluginBuildSettings.gradlePath) !== null && _a !== void 0 ? _a : (this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew");
460
- const toolsInfo = this.$androidToolsInfo.getToolsInfo({
461
- projectDir: this.$projectData.projectDir,
431
+ const gradlew = (_a = pluginBuildSettings.gradlePath) !== null && _a !== void 0 ? _a : (this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew");
432
+ const toolsInfo = this.$androidToolsInfo.getToolsInfo({
433
+ projectDir: this.$projectData.projectDir,
434
+ });
435
+ const localArgs = [
436
+ "-p",
437
+ pluginBuildSettings.pluginDir,
438
+ "assembleRelease",
439
+ `-PtempBuild=true`,
440
+ `-PcompileSdk=${toolsInfo.compileSdkVersion}`,
441
+ `-PbuildToolsVersion=${toolsInfo.buildToolsVersion}`,
442
+ `-PprojectRoot=${this.$projectData.projectDir}`,
443
+ `-DprojectRoot=${this.$projectData.projectDir}`,
444
+ `-PappPath=${this.$projectData.getAppDirectoryPath()}`,
445
+ `-PappBuildPath=${this.$projectData.getBuildRelativeDirectoryPath()}`,
446
+ `-DappBuildPath=${this.$projectData.getBuildRelativeDirectoryPath()}`,
447
+ `-PappResourcesPath=${this.$projectData.getAppResourcesDirectoryPath()}`,
448
+ ];
449
+ if (pluginBuildSettings.gradleArgs) {
450
+ const additionalArgs = [];
451
+ pluginBuildSettings.gradleArgs.forEach((arg) => {
452
+ additionalArgs.push(...arg.split(" -P").map((a, i) => (i === 0 ? a : `-P${a}`)));
462
453
  });
463
- const localArgs = [
464
- "-p",
465
- pluginBuildSettings.pluginDir,
466
- "assembleRelease",
467
- `-PtempBuild=true`,
468
- `-PcompileSdk=${toolsInfo.compileSdkVersion}`,
469
- `-PbuildToolsVersion=${toolsInfo.buildToolsVersion}`,
470
- `-PprojectRoot=${this.$projectData.projectDir}`,
471
- `-DprojectRoot=${this.$projectData.projectDir}`,
472
- `-PappPath=${this.$projectData.getAppDirectoryPath()}`,
473
- `-PappBuildPath=${this.$projectData.getBuildRelativeDirectoryPath()}`,
474
- `-DappBuildPath=${this.$projectData.getBuildRelativeDirectoryPath()}`,
475
- `-PappResourcesPath=${this.$projectData.getAppResourcesDirectoryPath()}`,
476
- ];
477
- if (pluginBuildSettings.gradleArgs) {
478
- const additionalArgs = [];
479
- pluginBuildSettings.gradleArgs.forEach((arg) => {
480
- additionalArgs.push(...arg.split(" -P").map((a, i) => (i === 0 ? a : `-P${a}`)));
481
- });
482
- localArgs.push(...additionalArgs);
483
- }
484
- if (this.$logger.getLevel() === "INFO") {
485
- localArgs.push("--quiet");
486
- }
487
- const opts = {
488
- cwd: pluginBuildSettings.pluginDir,
489
- stdio: "inherit",
490
- shell: this.$hostInfo.isWindows,
454
+ localArgs.push(...additionalArgs);
455
+ }
456
+ if (this.$logger.getLevel() === "INFO") {
457
+ localArgs.push("--quiet");
458
+ }
459
+ const opts = {
460
+ cwd: pluginBuildSettings.pluginDir,
461
+ stdio: "inherit",
462
+ shell: this.$hostInfo.isWindows,
463
+ };
464
+ if (this.$options.hostProjectPath) {
465
+ opts.env = {
466
+ USER_PROJECT_PLATFORMS_ANDROID: path.resolve((0, process_1.cwd)(), this.$options.hostProjectPath),
467
+ ...process.env,
491
468
  };
492
- if (this.$options.hostProjectPath) {
493
- opts.env = Object.assign({ USER_PROJECT_PLATFORMS_ANDROID: path.resolve((0, process_1.cwd)(), this.$options.hostProjectPath) }, process.env);
494
- }
495
- try {
496
- const sanitizedArgs = this.$hostInfo.isWindows
497
- ? localArgs.map((arg) => (0, helpers_1.quoteString)(arg))
498
- : localArgs;
499
- yield this.$childProcess.spawnFromEvent(gradlew, sanitizedArgs, "close", opts);
500
- }
501
- catch (err) {
502
- this.$errors.fail(`Failed to build plugin ${pluginBuildSettings.pluginName} : \n${err}`);
503
- }
504
- });
469
+ }
470
+ try {
471
+ const sanitizedArgs = this.$hostInfo.isWindows
472
+ ? localArgs.map((arg) => (0, helpers_1.quoteString)(arg))
473
+ : localArgs;
474
+ await this.$childProcess.spawnFromEvent(gradlew, sanitizedArgs, "close", opts);
475
+ }
476
+ catch (err) {
477
+ this.$errors.fail(`Failed to build plugin ${pluginBuildSettings.pluginName} : \n${err}`);
478
+ }
505
479
  }
506
480
  validateOptions(options) {
507
481
  if (!options) {
@@ -527,6 +501,7 @@ class AndroidPluginBuildService {
527
501
  }
528
502
  }
529
503
  }
504
+ exports.AndroidPluginBuildService = AndroidPluginBuildService;
530
505
  AndroidPluginBuildService.MANIFEST_ROOT = {
531
506
  $: {
532
507
  "xmlns:android": "http://schemas.android.com/apk/res/android",
@@ -535,5 +510,4 @@ AndroidPluginBuildService.MANIFEST_ROOT = {
535
510
  __decorate([
536
511
  (0, helpers_1.hook)("buildAndroidPlugin")
537
512
  ], AndroidPluginBuildService.prototype, "buildPlugin", null);
538
- exports.AndroidPluginBuildService = AndroidPluginBuildService;
539
513
  yok_1.injector.register("androidPluginBuildService", AndroidPluginBuildService);