@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
@@ -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.ProxyGetCommand = void 0;
13
4
  const proxy_base_1 = require("./proxy-base");
@@ -20,11 +11,9 @@ class ProxyGetCommand extends proxy_base_1.ProxyCommandBase {
20
11
  this.$logger = $logger;
21
12
  this.$proxyService = $proxyService;
22
13
  }
23
- execute(args) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- this.$logger.info(yield this.$proxyService.getInfo());
26
- yield this.tryTrackUsage();
27
- });
14
+ async execute(args) {
15
+ this.$logger.info(await this.$proxyService.getInfo());
16
+ await this.tryTrackUsage();
28
17
  }
29
18
  }
30
19
  exports.ProxyGetCommand = ProxyGetCommand;
@@ -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.ProxySetCommand = void 0;
13
4
  const commandParams = require("../../command-params");
@@ -37,87 +28,85 @@ class ProxySetCommand extends proxy_base_1.ProxyCommandBase {
37
28
  new commandParams.StringCommandParameter(this.$injector),
38
29
  ];
39
30
  }
40
- execute(args) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- let urlString = args[0];
43
- let username = args[1];
44
- let password = args[2];
45
- const noUrl = !urlString;
46
- if (noUrl) {
47
- if (!(0, helpers_1.isInteractive)()) {
48
- this.$errors.failWithHelp("Console is not interactive - you need to supply all command parameters.");
49
- }
50
- else {
51
- urlString = yield this.$prompter.getString("Url", {
52
- allowEmpty: false,
53
- });
54
- }
55
- }
56
- let urlObj = (0, url_1.parse)(urlString);
57
- if ((!urlObj.protocol || !urlObj.hostname) && !(0, helpers_1.isInteractive)()) {
58
- this.$errors.fail("The url you have entered is invalid please enter a valid url containing a valid protocol and hostname.");
59
- }
60
- while (!urlObj.protocol || !urlObj.hostname) {
61
- this.$logger.warn("The url you have entered is invalid please enter a valid url containing a valid protocol and hostname.");
62
- urlString = yield this.$prompter.getString("Url", { allowEmpty: false });
63
- urlObj = (0, url_1.parse)(urlString);
64
- }
65
- let port = (urlObj.port && +urlObj.port) || constants_1.HttpProtocolToPort[urlObj.protocol];
66
- const noPort = !port || !this.isValidPort(port);
67
- const authCredentials = getCredentialsFromAuth(urlObj.auth || "");
68
- if ((username &&
69
- authCredentials.username &&
70
- username !== authCredentials.username) ||
71
- (password &&
72
- authCredentials.password &&
73
- password !== authCredentials.password)) {
74
- this.$errors.fail("The credentials you have provided in the url address mismatch those passed as command line arguments.");
75
- }
76
- username = username || authCredentials.username;
77
- password = password || authCredentials.password;
31
+ async execute(args) {
32
+ let urlString = args[0];
33
+ let username = args[1];
34
+ let password = args[2];
35
+ const noUrl = !urlString;
36
+ if (noUrl) {
78
37
  if (!(0, helpers_1.isInteractive)()) {
79
- if (noPort) {
80
- this.$errors.fail(`The port you have specified (${port || "none"}) is not valid.`);
81
- }
82
- else if (this.isPasswordRequired(username, password)) {
83
- this.$errors.failWithHelp("Console is not interactive - you need to supply all command parameters.");
84
- }
38
+ this.$errors.failWithHelp("Console is not interactive - you need to supply all command parameters.");
85
39
  }
86
- if (noPort) {
87
- if (port) {
88
- this.$logger.warn(this.getInvalidPortMessage(port));
89
- }
90
- port = yield this.getPortFromUserInput();
91
- }
92
- if (!username) {
93
- this.$logger.info("In case your proxy requires authentication, please specify username and password. If authentication is not required, just leave it empty.");
94
- username = yield this.$prompter.getString("Username", {
95
- defaultAction: () => "",
40
+ else {
41
+ urlString = await this.$prompter.getString("Url", {
42
+ allowEmpty: false,
96
43
  });
97
44
  }
98
- if (this.isPasswordRequired(username, password)) {
99
- password = yield this.$prompter.getPassword("Password");
45
+ }
46
+ let urlObj = (0, url_1.parse)(urlString);
47
+ if ((!urlObj.protocol || !urlObj.hostname) && !(0, helpers_1.isInteractive)()) {
48
+ this.$errors.fail("The url you have entered is invalid please enter a valid url containing a valid protocol and hostname.");
49
+ }
50
+ while (!urlObj.protocol || !urlObj.hostname) {
51
+ this.$logger.warn("The url you have entered is invalid please enter a valid url containing a valid protocol and hostname.");
52
+ urlString = await this.$prompter.getString("Url", { allowEmpty: false });
53
+ urlObj = (0, url_1.parse)(urlString);
54
+ }
55
+ let port = (urlObj.port && +urlObj.port) || constants_1.HttpProtocolToPort[urlObj.protocol];
56
+ const noPort = !port || !this.isValidPort(port);
57
+ const authCredentials = getCredentialsFromAuth(urlObj.auth || "");
58
+ if ((username &&
59
+ authCredentials.username &&
60
+ username !== authCredentials.username) ||
61
+ (password &&
62
+ authCredentials.password &&
63
+ password !== authCredentials.password)) {
64
+ this.$errors.fail("The credentials you have provided in the url address mismatch those passed as command line arguments.");
65
+ }
66
+ username = username || authCredentials.username;
67
+ password = password || authCredentials.password;
68
+ if (!(0, helpers_1.isInteractive)()) {
69
+ if (noPort) {
70
+ this.$errors.fail(`The port you have specified (${port || "none"}) is not valid.`);
71
+ }
72
+ else if (this.isPasswordRequired(username, password)) {
73
+ this.$errors.failWithHelp("Console is not interactive - you need to supply all command parameters.");
100
74
  }
101
- const settings = {
102
- proxyUrl: urlString,
103
- username,
104
- password,
105
- rejectUnauthorized: !this.$options.insecure,
106
- };
107
- if (!this.$hostInfo.isWindows) {
108
- this.$logger.warn(`Note that storing credentials is not supported on ${(0, os_1.platform)()} yet.`);
75
+ }
76
+ if (noPort) {
77
+ if (port) {
78
+ this.$logger.warn(this.getInvalidPortMessage(port));
109
79
  }
110
- const clientName = this.$staticConfig.CLIENT_NAME.toLowerCase();
111
- const messageNote = (clientName === "tns"
112
- ? "Note that 'npm' and 'Gradle' need to be configured separately to work with a proxy."
113
- : "Note that `npm` needs to be configured separately to work with a proxy.") +
114
- os_1.EOL;
115
- this.$logger.warn(`${messageNote}Run '${clientName} proxy set --help' for more information.`);
116
- yield this.$proxyService.setCache(settings);
117
- this.$logger.info(`Successfully setup proxy.${os_1.EOL}`);
118
- this.$logger.info(yield this.$proxyService.getInfo());
119
- yield this.tryTrackUsage();
120
- });
80
+ port = await this.getPortFromUserInput();
81
+ }
82
+ if (!username) {
83
+ this.$logger.info("In case your proxy requires authentication, please specify username and password. If authentication is not required, just leave it empty.");
84
+ username = await this.$prompter.getString("Username", {
85
+ defaultAction: () => "",
86
+ });
87
+ }
88
+ if (this.isPasswordRequired(username, password)) {
89
+ password = await this.$prompter.getPassword("Password");
90
+ }
91
+ const settings = {
92
+ proxyUrl: urlString,
93
+ username,
94
+ password,
95
+ rejectUnauthorized: !this.$options.insecure,
96
+ };
97
+ if (!this.$hostInfo.isWindows) {
98
+ this.$logger.warn(`Note that storing credentials is not supported on ${(0, os_1.platform)()} yet.`);
99
+ }
100
+ const clientName = this.$staticConfig.CLIENT_NAME.toLowerCase();
101
+ const messageNote = (clientName === "tns"
102
+ ? "Note that 'npm' and 'Gradle' need to be configured separately to work with a proxy."
103
+ : "Note that `npm` needs to be configured separately to work with a proxy.") +
104
+ os_1.EOL;
105
+ this.$logger.warn(`${messageNote}Run '${clientName} proxy set --help' for more information.`);
106
+ await this.$proxyService.setCache(settings);
107
+ this.$logger.info(`Successfully setup proxy.${os_1.EOL}`);
108
+ this.$logger.info(await this.$proxyService.getInfo());
109
+ await this.tryTrackUsage();
121
110
  }
122
111
  isPasswordRequired(username, password) {
123
112
  return !!(username && !password);
@@ -125,22 +114,20 @@ class ProxySetCommand extends proxy_base_1.ProxyCommandBase {
125
114
  isValidPort(port) {
126
115
  return !isNaN(port) && port > 0 && port < 65536;
127
116
  }
128
- getPortFromUserInput() {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- const schemaName = "port";
131
- const schema = {
132
- message: "Port",
133
- type: "text",
134
- name: schemaName,
135
- validate: (value) => {
136
- return !value || !this.isValidPort(value)
137
- ? this.getInvalidPortMessage(value)
138
- : true;
139
- },
140
- };
141
- const prompterResult = yield this.$prompter.get([schema]);
142
- return parseInt(prompterResult[schemaName]);
143
- });
117
+ async getPortFromUserInput() {
118
+ const schemaName = "port";
119
+ const schema = {
120
+ message: "Port",
121
+ type: "text",
122
+ name: schemaName,
123
+ validate: (value) => {
124
+ return !value || !this.isValidPort(value)
125
+ ? this.getInvalidPortMessage(value)
126
+ : true;
127
+ },
128
+ };
129
+ const prompterResult = await this.$prompter.get([schema]);
130
+ return parseInt(prompterResult[schemaName]);
144
131
  }
145
132
  getInvalidPortMessage(port) {
146
133
  return `Specified port ${port} is not valid. Please enter a value between 1 and 65535.`;
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SOCKET_CONNECTION_TIMEOUT_MS = exports.AndroidVirtualDevice = exports.ATTACH_REQUEST_EVENT_NAME = exports.DEBUGGER_PORT_FOUND_EVENT_NAME = exports.DEFAULT_CHUNK_SIZE = exports.HttpProtocolToPort = exports.HttpStatusCodes = exports.Proxy = exports.IOS_RELAY_NOTIFICATION_COMMAND_TYPE = exports.IOS_OBSERVE_NOTIFICATION_COMMAND_TYPE = exports.IOS_POST_NOTIFICATION_COMMAND_TYPE = exports.FileExtensions = exports.TNS_CORE_MODULES = exports.NODE_MODULES_DIR_NAME = exports.Configurations = exports.TARGET_FRAMEWORK_IDENTIFIERS = exports.FAIL_LIVESYNC_LOG_REGEX = exports.IOS_APP_CRASH_LOG_REG_EXP = exports.IOS_LOG_PREDICATE = exports.DEVICE_LOG_EVENT_NAME = exports.EmulatorDiscoveryNames = exports.DeviceDiscoveryEventNames = exports.HmrConstants = exports.LiveSyncPaths = exports.APPLE_VENDOR_NAME = exports.NOT_RUNNING_EMULATOR_STATUS = exports.RUNNING_EMULATOR_STATUS = exports.CONNECTED_STATUS = exports.UNREACHABLE_STATUS = exports.ERROR_NO_VALID_SUBCOMMAND_FORMAT = exports.ERROR_CANNOT_RESOLVE_DEVICE = exports.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR = exports.ERROR_CANT_USE_SIMULATOR = exports.ERROR_NO_DEVICES = exports.APP_RESOURCES_FOLDER_NAME = exports.DeviceTypes = exports.ProvisionType = void 0;
4
4
  class ProvisionType {
5
5
  }
6
+ exports.ProvisionType = ProvisionType;
6
7
  ProvisionType.Development = "Development";
7
8
  ProvisionType.AdHoc = "AdHoc";
8
9
  ProvisionType.AppStore = "AppStore";
9
10
  ProvisionType.Enterprise = "Enterprise";
10
- exports.ProvisionType = ProvisionType;
11
11
  class DeviceTypes {
12
12
  }
13
+ exports.DeviceTypes = DeviceTypes;
13
14
  DeviceTypes.Emulator = "Emulator";
14
15
  DeviceTypes.Simulator = "Simulator";
15
16
  DeviceTypes.Device = "Device";
16
- exports.DeviceTypes = DeviceTypes;
17
17
  exports.APP_RESOURCES_FOLDER_NAME = "App_Resources";
18
18
  exports.ERROR_NO_DEVICES = "Cannot find connected devices. Reconnect any connected devices, verify that your system recognizes them, and run this command again.";
19
19
  exports.ERROR_CANT_USE_SIMULATOR = "You can use iOS simulator only on OS X.";
@@ -27,29 +27,29 @@ exports.NOT_RUNNING_EMULATOR_STATUS = "Not running";
27
27
  exports.APPLE_VENDOR_NAME = "Apple";
28
28
  class LiveSyncPaths {
29
29
  }
30
+ exports.LiveSyncPaths = LiveSyncPaths;
30
31
  LiveSyncPaths.SYNC_DIR_NAME = "sync";
31
32
  LiveSyncPaths.REMOVEDSYNC_DIR_NAME = "removedsync";
32
33
  LiveSyncPaths.FULLSYNC_DIR_NAME = "fullsync";
33
34
  LiveSyncPaths.IOS_DEVICE_PROJECT_ROOT_PATH = "Library/Application Support/LiveSync";
34
35
  LiveSyncPaths.IOS_DEVICE_SYNC_ZIP_PATH = "Library/Application Support/LiveSync/sync.zip";
35
36
  LiveSyncPaths.ANDROID_TMP_DIR_NAME = "/data/local/tmp";
36
- exports.LiveSyncPaths = LiveSyncPaths;
37
37
  class HmrConstants {
38
38
  }
39
+ exports.HmrConstants = HmrConstants;
39
40
  HmrConstants.HMR_ERROR_STATUS = 3;
40
41
  HmrConstants.HMR_SUCCESS_STATUS = 2;
41
- exports.HmrConstants = HmrConstants;
42
42
  class DeviceDiscoveryEventNames {
43
43
  }
44
+ exports.DeviceDiscoveryEventNames = DeviceDiscoveryEventNames;
44
45
  DeviceDiscoveryEventNames.DEVICE_FOUND = "deviceFound";
45
46
  DeviceDiscoveryEventNames.DEVICE_UPDATED = "deviceUpdated";
46
47
  DeviceDiscoveryEventNames.DEVICE_LOST = "deviceLost";
47
- exports.DeviceDiscoveryEventNames = DeviceDiscoveryEventNames;
48
48
  class EmulatorDiscoveryNames {
49
49
  }
50
+ exports.EmulatorDiscoveryNames = EmulatorDiscoveryNames;
50
51
  EmulatorDiscoveryNames.EMULATOR_IMAGE_FOUND = "emulatorImageFound";
51
52
  EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST = "emulatorImageLost";
52
- exports.EmulatorDiscoveryNames = EmulatorDiscoveryNames;
53
53
  exports.DEVICE_LOG_EVENT_NAME = "deviceLogData";
54
54
  exports.IOS_LOG_PREDICATE = 'senderImagePath contains "NativeScript"';
55
55
  exports.IOS_APP_CRASH_LOG_REG_EXP = /Fatal JavaScript exception \- application has been terminated/;
@@ -60,36 +60,36 @@ exports.TARGET_FRAMEWORK_IDENTIFIERS = {
60
60
  };
61
61
  class Configurations {
62
62
  }
63
+ exports.Configurations = Configurations;
63
64
  Configurations.Debug = "Debug";
64
65
  Configurations.Release = "Release";
65
- exports.Configurations = Configurations;
66
66
  exports.NODE_MODULES_DIR_NAME = "node_modules";
67
67
  exports.TNS_CORE_MODULES = "tns-core-modules";
68
68
  class FileExtensions {
69
69
  }
70
+ exports.FileExtensions = FileExtensions;
70
71
  FileExtensions.TYPESCRIPT_DEFINITION_FILE = ".d.ts";
71
72
  FileExtensions.TYPESCRIPT_FILE = ".ts";
72
73
  FileExtensions.PNG_FILE = ".png";
73
74
  FileExtensions.NINE_PATCH_PNG_FILE = ".9.png";
74
- exports.FileExtensions = FileExtensions;
75
75
  exports.IOS_POST_NOTIFICATION_COMMAND_TYPE = "PostNotification";
76
76
  exports.IOS_OBSERVE_NOTIFICATION_COMMAND_TYPE = "ObserveNotification";
77
77
  exports.IOS_RELAY_NOTIFICATION_COMMAND_TYPE = "RelayNotification";
78
78
  class Proxy {
79
79
  }
80
+ exports.Proxy = Proxy;
80
81
  Proxy.CACHE_FILE_NAME = "proxy-cache.json";
81
82
  Proxy.USE_PROXY = "USE_PROXY";
82
83
  Proxy.PROXY_PORT = "PROXY_PORT";
83
84
  Proxy.PROXY_HOSTNAME = "PROXY_HOSTNAME";
84
- exports.Proxy = Proxy;
85
85
  class HttpStatusCodes {
86
86
  }
87
+ exports.HttpStatusCodes = HttpStatusCodes;
87
88
  HttpStatusCodes.SEE_OTHER = 303;
88
89
  HttpStatusCodes.NOT_MODIFIED = 304;
89
90
  HttpStatusCodes.PAYMENT_REQUIRED = 402;
90
91
  HttpStatusCodes.PROXY_AUTHENTICATION_REQUIRED = 407;
91
92
  HttpStatusCodes.CONFLICTING_RESOURCE = 409;
92
- exports.HttpStatusCodes = HttpStatusCodes;
93
93
  exports.HttpProtocolToPort = {
94
94
  "http:": 80,
95
95
  "https:": 443,
@@ -99,6 +99,7 @@ exports.DEBUGGER_PORT_FOUND_EVENT_NAME = "DEBUGGER_PORT_FOUND";
99
99
  exports.ATTACH_REQUEST_EVENT_NAME = "ATTACH_REQUEST";
100
100
  class AndroidVirtualDevice {
101
101
  }
102
+ exports.AndroidVirtualDevice = AndroidVirtualDevice;
102
103
  AndroidVirtualDevice.ANDROID_DIR_NAME = ".android";
103
104
  AndroidVirtualDevice.AVD_DIR_NAME = "avd";
104
105
  AndroidVirtualDevice.ENCODING_MASK = /^avd\.ini\.encoding=(.*)$/;
@@ -118,5 +119,4 @@ AndroidVirtualDevice.AVD_VENDOR_NAME = "Avd";
118
119
  AndroidVirtualDevice.TIMEOUT_SECONDS = 120;
119
120
  AndroidVirtualDevice.GENYMOTION_DEFAULT_STDERR_STRING = "Logging activities to file";
120
121
  AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE = "Cannot run the app in the selected native emulator. Try to restart the adb server by running the `adb kill-server` command in the Command Prompt, or increase the allocated RAM of the virtual device through the Android Virtual Device manager. NativeScript CLI users can try to increase the timeout of the operation by adding the `--timeout` flag.";
121
- exports.AndroidVirtualDevice = AndroidVirtualDevice;
122
122
  exports.SOCKET_CONNECTION_TIMEOUT_MS = 30000;
@@ -1,15 +1,12 @@
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
- exports.deprecated = exports.performanceLog = exports.exported = exports.invokeInit = exports.invokeBefore = exports.memoize = exports.cache = void 0;
3
+ exports.cache = cache;
4
+ exports.memoize = memoize;
5
+ exports.invokeBefore = invokeBefore;
6
+ exports.invokeInit = invokeInit;
7
+ exports.exported = exported;
8
+ exports.performanceLog = performanceLog;
9
+ exports.deprecated = deprecated;
13
10
  const constants_1 = require("../constants");
14
11
  const yok_1 = require("./yok");
15
12
  function cache() {
@@ -28,7 +25,6 @@ function cache() {
28
25
  return descriptor;
29
26
  };
30
27
  }
31
- exports.cache = cache;
32
28
  let memoizeIDCounter = 0;
33
29
  function memoize(options) {
34
30
  return (target, propertyKey, descriptor) => {
@@ -87,24 +83,19 @@ function memoize(options) {
87
83
  return descriptor;
88
84
  };
89
85
  }
90
- exports.memoize = memoize;
91
86
  function invokeBefore(methodName, methodArgs) {
92
87
  return (target, propertyKey, descriptor) => {
93
88
  const originalValue = descriptor.value;
94
- descriptor.value = function (...args) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- yield target[methodName].apply(this, methodArgs);
97
- return originalValue.apply(this, args);
98
- });
89
+ descriptor.value = async function (...args) {
90
+ await target[methodName].apply(this, methodArgs);
91
+ return originalValue.apply(this, args);
99
92
  };
100
93
  return descriptor;
101
94
  };
102
95
  }
103
- exports.invokeBefore = invokeBefore;
104
96
  function invokeInit() {
105
97
  return invokeBefore("init");
106
98
  }
107
- exports.invokeInit = invokeInit;
108
99
  function exported(moduleName) {
109
100
  return (target, propertyKey, descriptor) => {
110
101
  yok_1.injector.publicApi.__modules__[moduleName] =
@@ -116,7 +107,6 @@ function exported(moduleName) {
116
107
  return descriptor;
117
108
  };
118
109
  }
119
- exports.exported = exported;
120
110
  function performanceLog(localInjector) {
121
111
  localInjector = localInjector || yok_1.injector;
122
112
  return function (target, propertyKey, descriptor) {
@@ -155,7 +145,6 @@ function performanceLog(localInjector) {
155
145
  return descriptor;
156
146
  };
157
147
  }
158
- exports.performanceLog = performanceLog;
159
148
  function deprecated(additionalInfo, localInjector) {
160
149
  const isDeprecatedMessage = " is deprecated.";
161
150
  return (target, key, descriptor) => {
@@ -198,4 +187,3 @@ function deprecated(additionalInfo, localInjector) {
198
187
  }
199
188
  };
200
189
  }
201
- exports.deprecated = deprecated;
@@ -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.CommandDispatcher = void 0;
19
10
  const _ = require("lodash");
@@ -36,45 +27,41 @@ class CommandDispatcher {
36
27
  this.$packageManager = $packageManager;
37
28
  this.$terminalSpinnerService = $terminalSpinnerService;
38
29
  }
39
- dispatchCommand() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- if (this.$options.version) {
42
- return this.printVersion();
43
- }
44
- if (this.$logger.getLevel() === "TRACE" && !this.$options.json) {
45
- this.$logger.trace("Collecting system information...");
46
- const sysInfo = yield this.$sysInfo.getSysInfo({
47
- pathToNativeScriptCliPackageJson: path.join(__dirname, "..", "..", "package.json"),
48
- });
49
- this.$logger.trace("System information:");
50
- this.$logger.trace(JSON.stringify(sysInfo, null, 2));
51
- this.$logger.trace("Current CLI version: ", this.$staticConfig.version);
52
- }
53
- let commandName = this.getCommandName();
54
- let commandArguments = this.$options.argv._.slice(1);
55
- const lastArgument = _.last(commandArguments);
56
- if (this.$options.help) {
57
- commandArguments.unshift(commandName);
58
- commandName = "help";
59
- }
60
- else if (lastArgument === "/?" || lastArgument === "?") {
61
- commandArguments.pop();
62
- commandArguments.unshift(commandName);
63
- commandName = "help";
64
- }
65
- ({
66
- commandName,
67
- commandArguments,
68
- argv: process.argv,
69
- } = yield this.resolveCommand(commandName, commandArguments, process.argv));
70
- yield this.$cancellation.begin("cli");
71
- yield this.$commandsService.tryExecuteCommand(commandName, commandArguments);
72
- });
30
+ async dispatchCommand() {
31
+ if (this.$options.version) {
32
+ return this.printVersion();
33
+ }
34
+ if (this.$logger.getLevel() === "TRACE" && !this.$options.json) {
35
+ this.$logger.trace("Collecting system information...");
36
+ const sysInfo = await this.$sysInfo.getSysInfo({
37
+ pathToNativeScriptCliPackageJson: path.join(__dirname, "..", "..", "package.json"),
38
+ });
39
+ this.$logger.trace("System information:");
40
+ this.$logger.trace(JSON.stringify(sysInfo, null, 2));
41
+ this.$logger.trace("Current CLI version: ", this.$staticConfig.version);
42
+ }
43
+ let commandName = this.getCommandName();
44
+ let commandArguments = this.$options.argv._.slice(1);
45
+ const lastArgument = _.last(commandArguments);
46
+ if (this.$options.help) {
47
+ commandArguments.unshift(commandName);
48
+ commandName = "help";
49
+ }
50
+ else if (lastArgument === "/?" || lastArgument === "?") {
51
+ commandArguments.pop();
52
+ commandArguments.unshift(commandName);
53
+ commandName = "help";
54
+ }
55
+ ({
56
+ commandName,
57
+ commandArguments,
58
+ argv: process.argv,
59
+ } = await this.resolveCommand(commandName, commandArguments, process.argv));
60
+ await this.$cancellation.begin("cli");
61
+ await this.$commandsService.tryExecuteCommand(commandName, commandArguments);
73
62
  }
74
- resolveCommand(commandName, commandArguments, argv) {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- return { commandName, commandArguments, argv };
77
- });
63
+ async resolveCommand(commandName, commandArguments, argv) {
64
+ return { commandName, commandArguments, argv };
78
65
  }
79
66
  getCommandName() {
80
67
  const remaining = this.$options.argv._;
@@ -84,65 +71,61 @@ class CommandDispatcher {
84
71
  this.$options.help = true;
85
72
  return "";
86
73
  }
87
- printVersion() {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- this.$logger.info(this.$staticConfig.version);
90
- if (this.$options.json) {
91
- return;
92
- }
93
- const spinner = this.$terminalSpinnerService.createSpinner();
94
- spinner.start("Checking for updates...");
95
- const nativescriptCliVersion = yield this.$versionsService.getNativescriptCliVersion();
96
- spinner.stop();
97
- const packageManagerName = yield this.$packageManager.getPackageManagerName();
98
- let updateCommand = "";
99
- switch (packageManagerName) {
100
- case constants_1.PackageManagers.yarn:
101
- case constants_1.PackageManagers.yarn2:
102
- updateCommand = "yarn global add nativescript";
103
- break;
104
- case constants_1.PackageManagers.pnpm:
105
- updateCommand = "pnpm i -g nativescript";
106
- break;
107
- case constants_1.PackageManagers.bun:
108
- updateCommand = "bun add --global nativescript";
109
- break;
110
- case constants_1.PackageManagers.npm:
111
- default:
112
- updateCommand = "npm i -g nativescript";
113
- break;
114
- }
115
- if (semver.gte(nativescriptCliVersion.currentVersion, nativescriptCliVersion.latestVersion, {
116
- loose: true,
117
- })) {
118
- spinner.succeed("Up to date.");
119
- }
120
- else {
121
- spinner.info(`New version of NativeScript CLI is available (${nativescriptCliVersion.latestVersion}), run '${updateCommand}' to update.`);
122
- }
123
- });
74
+ async printVersion() {
75
+ this.$logger.info(this.$staticConfig.version);
76
+ if (this.$options.json) {
77
+ return;
78
+ }
79
+ const spinner = this.$terminalSpinnerService.createSpinner();
80
+ spinner.start("Checking for updates...");
81
+ const nativescriptCliVersion = await this.$versionsService.getNativescriptCliVersion();
82
+ spinner.stop();
83
+ const packageManagerName = await this.$packageManager.getPackageManagerName();
84
+ let updateCommand = "";
85
+ switch (packageManagerName) {
86
+ case constants_1.PackageManagers.yarn:
87
+ case constants_1.PackageManagers.yarn2:
88
+ updateCommand = "yarn global add nativescript";
89
+ break;
90
+ case constants_1.PackageManagers.pnpm:
91
+ updateCommand = "pnpm i -g nativescript";
92
+ break;
93
+ case constants_1.PackageManagers.bun:
94
+ updateCommand = "bun add --global nativescript";
95
+ break;
96
+ case constants_1.PackageManagers.npm:
97
+ default:
98
+ updateCommand = "npm i -g nativescript";
99
+ break;
100
+ }
101
+ if (semver.gte(nativescriptCliVersion.currentVersion, nativescriptCliVersion.latestVersion, {
102
+ loose: true,
103
+ })) {
104
+ spinner.succeed("Up to date.");
105
+ }
106
+ else {
107
+ spinner.info(`New version of NativeScript CLI is available (${nativescriptCliVersion.latestVersion}), run '${updateCommand}' to update.`);
108
+ }
124
109
  }
125
110
  }
111
+ exports.CommandDispatcher = CommandDispatcher;
126
112
  __decorate([
127
113
  (0, helpers_1.hook)("resolveCommand")
128
114
  ], CommandDispatcher.prototype, "resolveCommand", null);
129
- exports.CommandDispatcher = CommandDispatcher;
130
115
  yok_1.injector.register("commandDispatcher", CommandDispatcher);
131
116
  class FutureDispatcher {
132
117
  constructor($errors) {
133
118
  this.$errors = $errors;
134
119
  }
135
- run() {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- if (this.actions) {
138
- this.$errors.fail("You cannot run a running future dispatcher.");
139
- }
140
- this.actions = new queue.Queue();
141
- while (true) {
142
- const action = yield this.actions.dequeue();
143
- yield action();
144
- }
145
- });
120
+ async run() {
121
+ if (this.actions) {
122
+ this.$errors.fail("You cannot run a running future dispatcher.");
123
+ }
124
+ this.actions = new queue.Queue();
125
+ while (true) {
126
+ const action = await this.actions.dequeue();
127
+ await action();
128
+ }
146
129
  }
147
130
  dispatch(action) {
148
131
  this.actions.enqueue(action);