@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
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.PlatformCommandHelper = void 0;
13
4
  const path = require("path");
@@ -16,11 +7,12 @@ const _ = require("lodash");
16
7
  const constants = require("../constants");
17
8
  const yok_1 = require("../common/yok");
18
9
  class PlatformCommandHelper {
19
- constructor($platformController, $fs, $errors, $logger, $mobileHelper, $packageInstallationManager, $pacoteService, $platformsDataService, $platformValidationService, $projectChangesService, $projectDataService, $tempService) {
10
+ constructor($platformController, $fs, $errors, $logger, $options, $mobileHelper, $packageInstallationManager, $pacoteService, $platformsDataService, $platformValidationService, $projectChangesService, $projectDataService, $tempService) {
20
11
  this.$platformController = $platformController;
21
12
  this.$fs = $fs;
22
13
  this.$errors = $errors;
23
14
  this.$logger = $logger;
15
+ this.$options = $options;
24
16
  this.$mobileHelper = $mobileHelper;
25
17
  this.$packageInstallationManager = $packageInstallationManager;
26
18
  this.$pacoteService = $pacoteService;
@@ -30,79 +22,79 @@ class PlatformCommandHelper {
30
22
  this.$projectDataService = $projectDataService;
31
23
  this.$tempService = $tempService;
32
24
  }
33
- addPlatforms(platforms, projectData, frameworkPath) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- const platformsDir = projectData.platformsDir;
36
- this.$fs.ensureDirectoryExists(platformsDir);
37
- for (const platform of platforms) {
38
- this.$platformValidationService.validatePlatform(platform, projectData);
39
- const platformPath = path.join(projectData.platformsDir, platform);
40
- const isPlatformAdded = this.isPlatformAdded(platform, platformPath, projectData);
41
- if (isPlatformAdded) {
42
- this.$errors.fail(`Platform ${platform} already added`);
43
- }
44
- yield this.$platformController.addPlatform({
45
- projectDir: projectData.projectDir,
46
- platform,
47
- frameworkPath,
48
- });
25
+ async addPlatforms(platforms, projectData, frameworkPath) {
26
+ if (this.$options.hostProjectPath) {
27
+ this.$logger.info("Ignoring platform add becuase of --hostProjectPath flag");
28
+ return;
29
+ }
30
+ const platformsDir = projectData.platformsDir;
31
+ this.$fs.ensureDirectoryExists(platformsDir);
32
+ for (const platform of platforms) {
33
+ this.$platformValidationService.validatePlatform(platform, projectData);
34
+ const platformPath = path.join(projectData.platformsDir, platform);
35
+ const isPlatformAdded = this.isPlatformAdded(platform, platformPath, projectData);
36
+ if (isPlatformAdded) {
37
+ this.$errors.fail(`Platform ${platform} already added`);
49
38
  }
50
- });
39
+ await this.$platformController.addPlatform({
40
+ projectDir: projectData.projectDir,
41
+ platform,
42
+ frameworkPath,
43
+ });
44
+ }
51
45
  }
52
- cleanPlatforms(platforms, projectData, framworkPath) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- for (const platform of platforms) {
55
- const version = this.getCurrentPlatformVersion(platform, projectData);
56
- yield this.removePlatforms([platform], projectData);
57
- const platformParam = version ? `${platform}@${version}` : platform;
58
- yield this.addPlatforms([platformParam], projectData, framworkPath);
59
- }
60
- });
46
+ async cleanPlatforms(platforms, projectData, framworkPath) {
47
+ for (const platform of platforms) {
48
+ const version = this.getCurrentPlatformVersion(platform, projectData);
49
+ await this.removePlatforms([platform], projectData);
50
+ const platformParam = version ? `${platform}@${version}` : platform;
51
+ await this.addPlatforms([platformParam], projectData, framworkPath);
52
+ }
61
53
  }
62
- removePlatforms(platforms, projectData) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- for (const platform of platforms) {
65
- this.$platformValidationService.validatePlatformInstalled(platform, projectData);
66
- const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
67
- let errorMessage;
68
- try {
69
- yield platformData.platformProjectService.stopServices(platformData.projectRoot);
70
- }
71
- catch (err) {
72
- errorMessage = err.message;
73
- }
74
- try {
75
- const platformDir = path.join(projectData.platformsDir, platform.toLowerCase());
76
- this.$fs.deleteDirectory(platformDir);
77
- yield this.$packageInstallationManager.uninstall(platformData.frameworkPackageName, projectData.projectDir);
78
- this.$logger.info(`Platform ${platform} successfully removed.`);
79
- }
80
- catch (err) {
81
- this.$logger.error(`Failed to remove ${platform} platform with errors:`);
82
- if (errorMessage) {
83
- this.$logger.error(errorMessage);
84
- }
85
- this.$errors.fail(err.message);
54
+ async removePlatforms(platforms, projectData) {
55
+ if (this.$options.hostProjectPath) {
56
+ this.$logger.info("Ignoring platform remove becuase of --native-host flag");
57
+ return;
58
+ }
59
+ for (const platform of platforms) {
60
+ this.$platformValidationService.validatePlatformInstalled(platform, projectData);
61
+ const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
62
+ let errorMessage;
63
+ try {
64
+ await platformData.platformProjectService.stopServices(platformData.projectRoot);
65
+ }
66
+ catch (err) {
67
+ errorMessage = err.message;
68
+ }
69
+ try {
70
+ const platformDir = path.join(projectData.platformsDir, platform.toLowerCase());
71
+ this.$fs.deleteDirectory(platformDir);
72
+ await this.$packageInstallationManager.uninstall(platformData.frameworkPackageName, projectData.projectDir);
73
+ this.$logger.info(`Platform ${platform} successfully removed.`);
74
+ }
75
+ catch (err) {
76
+ this.$logger.error(`Failed to remove ${platform} platform with errors:`);
77
+ if (errorMessage) {
78
+ this.$logger.error(errorMessage);
86
79
  }
80
+ this.$errors.fail(err.message);
87
81
  }
88
- });
82
+ }
89
83
  }
90
- updatePlatforms(platforms, projectData) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- for (const platformParam of platforms) {
93
- const data = platformParam.split("@"), platform = data[0], version = data[1];
94
- const hasPlatformDirectory = this.$fs.exists(path.join(projectData.platformsDir, platform.toLowerCase()));
95
- if (hasPlatformDirectory) {
96
- yield this.updatePlatform(platform, version, projectData);
97
- }
98
- else {
99
- yield this.$platformController.addPlatform({
100
- projectDir: projectData.projectDir,
101
- platform: platformParam,
102
- });
103
- }
84
+ async updatePlatforms(platforms, projectData) {
85
+ for (const platformParam of platforms) {
86
+ const data = platformParam.split("@"), platform = data[0], version = data[1];
87
+ const hasPlatformDirectory = this.$fs.exists(path.join(projectData.platformsDir, platform.toLowerCase()));
88
+ if (hasPlatformDirectory) {
89
+ await this.updatePlatform(platform, version, projectData);
104
90
  }
105
- });
91
+ else {
92
+ await this.$platformController.addPlatform({
93
+ projectDir: projectData.projectDir,
94
+ platform: platformParam,
95
+ });
96
+ }
97
+ }
106
98
  }
107
99
  getInstalledPlatforms(projectData) {
108
100
  if (!this.$fs.exists(projectData.platformsDir)) {
@@ -142,46 +134,42 @@ class PlatformCommandHelper {
142
134
  return (prepareInfo.nativePlatformStatus !==
143
135
  "1");
144
136
  }
145
- updatePlatform(platform, version, projectData) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
148
- const data = this.$projectDataService.getRuntimePackage(projectData.projectDir, platformData.platformNameLowerCase);
149
- const currentVersion = data && data.version ? data.version : "0.2.0";
150
- const installedModuleDir = yield this.$tempService.mkdirSync("runtime-to-update");
151
- let newVersion = version === constants.PackageVersion.NEXT
152
- ? yield this.$packageInstallationManager.getNextVersion(platformData.frameworkPackageName)
153
- : version ||
154
- (yield this.$packageInstallationManager.getLatestCompatibleVersion(platformData.frameworkPackageName));
155
- yield this.$pacoteService.extractPackage(`${platformData.frameworkPackageName}@${newVersion}`, installedModuleDir);
156
- const cachedPackageData = this.$fs.readJson(path.join(installedModuleDir, "package.json"));
157
- newVersion = (cachedPackageData && cachedPackageData.version) || newVersion;
158
- if (!semver.valid(newVersion)) {
159
- this.$errors.fail("The version %s is not valid. The version should consists from 3 parts separated by dot.", newVersion);
160
- }
161
- if (!semver.gt(currentVersion, newVersion)) {
162
- yield this.updatePlatformCore(platformData, { currentVersion, newVersion }, projectData);
163
- }
164
- else if (semver.eq(currentVersion, newVersion)) {
165
- this.$errors.fail("Current and new version are the same.");
166
- }
167
- else {
168
- this.$errors.fail(`Your current version: ${currentVersion} is higher than the one you're trying to install ${newVersion}.`);
169
- }
170
- });
137
+ async updatePlatform(platform, version, projectData) {
138
+ const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
139
+ const data = this.$projectDataService.getRuntimePackage(projectData.projectDir, platformData.platformNameLowerCase);
140
+ const currentVersion = data && data.version ? data.version : "0.2.0";
141
+ const installedModuleDir = await this.$tempService.mkdirSync("runtime-to-update");
142
+ let newVersion = version === constants.PackageVersion.NEXT
143
+ ? await this.$packageInstallationManager.getNextVersion(platformData.frameworkPackageName)
144
+ : version ||
145
+ (await this.$packageInstallationManager.getLatestCompatibleVersion(platformData.frameworkPackageName));
146
+ await this.$pacoteService.extractPackage(`${platformData.frameworkPackageName}@${newVersion}`, installedModuleDir);
147
+ const cachedPackageData = this.$fs.readJson(path.join(installedModuleDir, "package.json"));
148
+ newVersion = (cachedPackageData && cachedPackageData.version) || newVersion;
149
+ if (!semver.valid(newVersion)) {
150
+ this.$errors.fail("The version %s is not valid. The version should consists from 3 parts separated by dot.", newVersion);
151
+ }
152
+ if (!semver.gt(currentVersion, newVersion)) {
153
+ await this.updatePlatformCore(platformData, { currentVersion, newVersion }, projectData);
154
+ }
155
+ else if (semver.eq(currentVersion, newVersion)) {
156
+ this.$errors.fail("Current and new version are the same.");
157
+ }
158
+ else {
159
+ this.$errors.fail(`Your current version: ${currentVersion} is higher than the one you're trying to install ${newVersion}.`);
160
+ }
171
161
  }
172
- updatePlatformCore(platformData, updateOptions, projectData) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- let packageName = platformData.normalizedPlatformName.toLowerCase();
175
- yield this.removePlatforms([packageName], projectData);
176
- packageName = updateOptions.newVersion
177
- ? `${packageName}@${updateOptions.newVersion}`
178
- : packageName;
179
- yield this.$platformController.addPlatform({
180
- projectDir: projectData.projectDir,
181
- platform: packageName,
182
- });
183
- this.$logger.info("Successfully updated to version ", updateOptions.newVersion);
162
+ async updatePlatformCore(platformData, updateOptions, projectData) {
163
+ let packageName = platformData.normalizedPlatformName.toLowerCase();
164
+ await this.removePlatforms([packageName], projectData);
165
+ packageName = updateOptions.newVersion
166
+ ? `${packageName}@${updateOptions.newVersion}`
167
+ : packageName;
168
+ await this.$platformController.addPlatform({
169
+ projectDir: projectData.projectDir,
170
+ platform: packageName,
184
171
  });
172
+ this.$logger.info("Successfully updated to version ", updateOptions.newVersion);
185
173
  }
186
174
  isPlatformPrepared(platform, projectData) {
187
175
  const platformData = this.$platformsDataService.getPlatformData(platform, projectData);