@akylas/nativescript-cli 8.7.2 → 8.8.3

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