@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.CleanCommand = void 0;
13
4
  const color_1 = require("../color");
@@ -64,189 +55,183 @@ class CleanCommand {
64
55
  this.$staticConfig = $staticConfig;
65
56
  this.allowedParameters = [];
66
57
  }
67
- execute(args) {
58
+ async execute(args) {
68
59
  var _a, _b;
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const isDryRun = (_a = this.$options.dryRun) !== null && _a !== void 0 ? _a : false;
71
- const isJSON = (_b = this.$options.json) !== null && _b !== void 0 ? _b : false;
72
- const spinner = this.$terminalSpinnerService.createSpinner({
73
- isSilent: isJSON,
74
- });
75
- if (!this.$projectService.isValidNativeScriptProject()) {
76
- return this.cleanMultipleProjects(spinner);
77
- }
78
- spinner.start("Cleaning project...\n");
79
- let pathsToClean = [
80
- constants.HOOKS_DIR_NAME,
81
- this.$projectData.getBuildRelativeDirectoryPath(),
82
- constants.NODE_MODULES_FOLDER_NAME,
83
- constants.PACKAGE_LOCK_JSON_FILE_NAME,
84
- ];
85
- try {
86
- const overridePathsToClean = this.$projectConfigService.getValue("cli.pathsToClean");
87
- const additionalPaths = this.$projectConfigService.getValue("cli.additionalPathsToClean");
88
- if (Array.isArray(overridePathsToClean)) {
89
- pathsToClean = overridePathsToClean;
90
- }
91
- if (Array.isArray(additionalPaths)) {
92
- pathsToClean.push(...additionalPaths);
93
- }
60
+ const isDryRun = (_a = this.$options.dryRun) !== null && _a !== void 0 ? _a : false;
61
+ const isJSON = (_b = this.$options.json) !== null && _b !== void 0 ? _b : false;
62
+ const spinner = this.$terminalSpinnerService.createSpinner({
63
+ isSilent: isJSON,
64
+ });
65
+ if (!this.$projectService.isValidNativeScriptProject()) {
66
+ return this.cleanMultipleProjects(spinner);
67
+ }
68
+ spinner.start("Cleaning project...\n");
69
+ let pathsToClean = [
70
+ constants.HOOKS_DIR_NAME,
71
+ this.$projectData.getBuildRelativeDirectoryPath(),
72
+ constants.NODE_MODULES_FOLDER_NAME,
73
+ constants.PACKAGE_LOCK_JSON_FILE_NAME,
74
+ ];
75
+ try {
76
+ const overridePathsToClean = this.$projectConfigService.getValue("cli.pathsToClean");
77
+ const additionalPaths = this.$projectConfigService.getValue("cli.additionalPathsToClean");
78
+ if (Array.isArray(overridePathsToClean)) {
79
+ pathsToClean = overridePathsToClean;
94
80
  }
95
- catch (err) {
81
+ if (Array.isArray(additionalPaths)) {
82
+ pathsToClean.push(...additionalPaths);
96
83
  }
97
- const res = yield this.$projectCleanupService.clean(pathsToClean, {
84
+ }
85
+ catch (err) {
86
+ }
87
+ const res = await this.$projectCleanupService.clean(pathsToClean, {
88
+ dryRun: isDryRun,
89
+ silent: isJSON,
90
+ stats: isJSON,
91
+ });
92
+ if (res.stats && isJSON) {
93
+ console.log(JSON.stringify({
94
+ ok: res.ok,
98
95
  dryRun: isDryRun,
99
- silent: isJSON,
100
- stats: isJSON,
96
+ stats: Object.fromEntries(res.stats.entries()),
97
+ }, null, 2));
98
+ return;
99
+ }
100
+ if (res.ok) {
101
+ spinner.succeed("Project successfully cleaned.");
102
+ }
103
+ else {
104
+ spinner.fail(color_1.color.red("Project unsuccessfully cleaned."));
105
+ }
106
+ }
107
+ async cleanMultipleProjects(spinner) {
108
+ if (!(0, helpers_1.isInteractive)() || this.$options.json) {
109
+ this.$logger.warn("No project found in the current directory.");
110
+ return;
111
+ }
112
+ const shouldScan = await this.$prompter.confirm("No project found in the current directory. Would you like to scan for all projects in sub-directories instead?");
113
+ if (!shouldScan) {
114
+ return;
115
+ }
116
+ spinner.start("Scanning for projects... Please wait.");
117
+ const paths = await this.getNSProjectPathsInDirectory();
118
+ spinner.succeed(`Found ${paths.length} projects.`);
119
+ let computed = 0;
120
+ const updateProgress = () => {
121
+ const current = color_1.color.grey(`${computed}/${paths.length}`);
122
+ spinner.start(`Gathering cleanable sizes. This may take a while... ${current}`);
123
+ };
124
+ updateProgress();
125
+ const projects = new Map();
126
+ await promiseMap(paths, (p) => {
127
+ return this.$childProcess
128
+ .exec(`node ${this.$staticConfig.cliBinPath} clean --dry-run --json --disable-analytics`, {
129
+ cwd: p,
130
+ })
131
+ .then((res) => {
132
+ const paths = JSON.parse(res).stats;
133
+ return Object.values(paths).reduce((a, b) => a + b, 0);
134
+ })
135
+ .catch((err) => {
136
+ this.$logger.trace("Failed to get project size for %s, Error is:", p, err);
137
+ return -1;
138
+ })
139
+ .then((size) => {
140
+ if (size > 0 || size === -1) {
141
+ projects.set(p, size);
142
+ }
143
+ computed++;
144
+ updateProgress();
101
145
  });
102
- if (res.stats && isJSON) {
103
- console.log(JSON.stringify({
104
- ok: res.ok,
105
- dryRun: isDryRun,
106
- stats: Object.fromEntries(res.stats.entries()),
107
- }, null, 2));
108
- return;
109
- }
110
- if (res.ok) {
111
- spinner.succeed("Project successfully cleaned.");
146
+ }, os.cpus().length);
147
+ spinner.clear();
148
+ spinner.stop();
149
+ this.$logger.clearScreen();
150
+ const totalSize = Array.from(projects.values())
151
+ .filter((s) => s > 0)
152
+ .reduce((a, b) => a + b, 0);
153
+ const pathsToClean = await this.$prompter.promptForChoice(`Found ${projects.size} cleanable project(s) with a total size of: ${color_1.color.green(bytesToHumanReadable(totalSize))}. Select projects to clean`, Array.from(projects.keys()).map((p) => {
154
+ const size = projects.get(p);
155
+ let description;
156
+ if (size === -1) {
157
+ description = " - could not get size";
112
158
  }
113
159
  else {
114
- spinner.fail(color_1.color.red("Project unsuccessfully cleaned."));
160
+ description = ` - ${bytesToHumanReadable(size)}`;
115
161
  }
162
+ return {
163
+ title: `${p}${color_1.color.grey(description)}`,
164
+ value: p,
165
+ };
166
+ }), true, {
167
+ optionsPerPage: process.stdout.rows - 6,
116
168
  });
117
- }
118
- cleanMultipleProjects(spinner) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- if (!(0, helpers_1.isInteractive)() || this.$options.json) {
121
- this.$logger.warn("No project found in the current directory.");
122
- return;
169
+ this.$logger.clearScreen();
170
+ spinner.warn(`This will run "${color_1.color.yellow(`ns clean`)}" in all the selected projects and ${color_1.color.red.bold("delete files from your system")}!`);
171
+ spinner.warn(`This action cannot be undone!`);
172
+ let confirmed = await this.$prompter.confirm("Are you sure you want to clean the selected projects?");
173
+ if (!confirmed) {
174
+ return;
175
+ }
176
+ spinner.info("Cleaning... This might take a while...");
177
+ let totalSizeCleaned = 0;
178
+ for (let i = 0; i < pathsToClean.length; i++) {
179
+ const currentPath = pathsToClean[i];
180
+ spinner.start(`Cleaning ${color_1.color.cyan(currentPath)}... ${i + 1}/${pathsToClean.length}`);
181
+ const ok = await this.$childProcess
182
+ .exec(`node ${this.$staticConfig.cliBinPath} clean ${this.$options.dryRun ? "--dry-run" : ""} --json --disable-analytics`, {
183
+ cwd: currentPath,
184
+ })
185
+ .then((res) => {
186
+ const cleanupRes = JSON.parse(res);
187
+ return cleanupRes.ok;
188
+ })
189
+ .catch((err) => {
190
+ this.$logger.trace('Failed to clean project "%s"', currentPath, err);
191
+ return false;
192
+ });
193
+ if (ok) {
194
+ const cleanedSize = projects.get(currentPath);
195
+ const cleanedSizeStr = color_1.color.grey(`- ${bytesToHumanReadable(cleanedSize)}`);
196
+ spinner.succeed(`Cleaned ${color_1.color.cyan(currentPath)} ${cleanedSizeStr}`);
197
+ totalSizeCleaned += cleanedSize;
198
+ }
199
+ else {
200
+ spinner.fail(`Failed to clean ${color_1.color.cyan(currentPath)} - skipped`);
123
201
  }
124
- const shouldScan = yield this.$prompter.confirm("No project found in the current directory. Would you like to scan for all projects in sub-directories instead?");
125
- if (!shouldScan) {
202
+ }
203
+ spinner.clear();
204
+ spinner.stop();
205
+ spinner.succeed(`Done! We've just freed up ${color_1.color.green(bytesToHumanReadable(totalSizeCleaned))}! Woohoo! 🎉`);
206
+ if (this.$options.dryRun) {
207
+ spinner.info('Note: the "--dry-run" flag was used, so no files were actually deleted.');
208
+ }
209
+ }
210
+ async getNSProjectPathsInDirectory(dir = process.cwd()) {
211
+ let nsDirs = [];
212
+ const getFiles = async (dir) => {
213
+ if (dir.includes("node_modules")) {
126
214
  return;
127
215
  }
128
- spinner.start("Scanning for projects... Please wait.");
129
- const paths = yield this.getNSProjectPathsInDirectory();
130
- spinner.succeed(`Found ${paths.length} projects.`);
131
- let computed = 0;
132
- const updateProgress = () => {
133
- const current = color_1.color.grey(`${computed}/${paths.length}`);
134
- spinner.start(`Gathering cleanable sizes. This may take a while... ${current}`);
135
- };
136
- updateProgress();
137
- const projects = new Map();
138
- yield promiseMap(paths, (p) => {
139
- return this.$childProcess
140
- .exec(`node ${this.$staticConfig.cliBinPath} clean --dry-run --json --disable-analytics`, {
141
- cwd: p,
142
- })
143
- .then((res) => {
144
- const paths = JSON.parse(res).stats;
145
- return Object.values(paths).reduce((a, b) => a + b, 0);
146
- })
147
- .catch((err) => {
148
- this.$logger.trace("Failed to get project size for %s, Error is:", p, err);
149
- return -1;
150
- })
151
- .then((size) => {
152
- if (size > 0 || size === -1) {
153
- projects.set(p, size);
154
- }
155
- computed++;
156
- updateProgress();
157
- });
158
- }, os.cpus().length);
159
- spinner.clear();
160
- spinner.stop();
161
- this.$logger.clearScreen();
162
- const totalSize = Array.from(projects.values())
163
- .filter((s) => s > 0)
164
- .reduce((a, b) => a + b, 0);
165
- const pathsToClean = yield this.$prompter.promptForChoice(`Found ${projects.size} cleanable project(s) with a total size of: ${color_1.color.green(bytesToHumanReadable(totalSize))}. Select projects to clean`, Array.from(projects.keys()).map((p) => {
166
- const size = projects.get(p);
167
- let description;
168
- if (size === -1) {
169
- description = " - could not get size";
170
- }
171
- else {
172
- description = ` - ${bytesToHumanReadable(size)}`;
173
- }
174
- return {
175
- title: `${p}${color_1.color.grey(description)}`,
176
- value: p,
177
- };
178
- }), true, {
179
- optionsPerPage: process.stdout.rows - 6,
216
+ const dirents = await (0, promises_1.readdir)(dir, { withFileTypes: true }).catch((err) => {
217
+ this.$logger.trace('Failed to read directory "%s". Error is:', dir, err);
218
+ return [];
180
219
  });
181
- this.$logger.clearScreen();
182
- spinner.warn(`This will run "${color_1.color.yellow(`ns clean`)}" in all the selected projects and ${color_1.color.red.bold("delete files from your system")}!`);
183
- spinner.warn(`This action cannot be undone!`);
184
- let confirmed = yield this.$prompter.confirm("Are you sure you want to clean the selected projects?");
185
- if (!confirmed) {
220
+ const hasNSConfig = dirents.some((ent) => ent.name.includes("nativescript.config.ts") ||
221
+ ent.name.includes("nativescript.config.js"));
222
+ if (hasNSConfig) {
223
+ nsDirs.push(dir);
186
224
  return;
187
225
  }
188
- spinner.info("Cleaning... This might take a while...");
189
- let totalSizeCleaned = 0;
190
- for (let i = 0; i < pathsToClean.length; i++) {
191
- const currentPath = pathsToClean[i];
192
- spinner.start(`Cleaning ${color_1.color.cyan(currentPath)}... ${i + 1}/${pathsToClean.length}`);
193
- const ok = yield this.$childProcess
194
- .exec(`node ${this.$staticConfig.cliBinPath} clean ${this.$options.dryRun ? "--dry-run" : ""} --json --disable-analytics`, {
195
- cwd: currentPath,
196
- })
197
- .then((res) => {
198
- const cleanupRes = JSON.parse(res);
199
- return cleanupRes.ok;
200
- })
201
- .catch((err) => {
202
- this.$logger.trace('Failed to clean project "%s"', currentPath, err);
203
- return false;
204
- });
205
- if (ok) {
206
- const cleanedSize = projects.get(currentPath);
207
- const cleanedSizeStr = color_1.color.grey(`- ${bytesToHumanReadable(cleanedSize)}`);
208
- spinner.succeed(`Cleaned ${color_1.color.cyan(currentPath)} ${cleanedSizeStr}`);
209
- totalSizeCleaned += cleanedSize;
210
- }
211
- else {
212
- spinner.fail(`Failed to clean ${color_1.color.cyan(currentPath)} - skipped`);
213
- }
214
- }
215
- spinner.clear();
216
- spinner.stop();
217
- spinner.succeed(`Done! We've just freed up ${color_1.color.green(bytesToHumanReadable(totalSizeCleaned))}! Woohoo! 🎉`);
218
- if (this.$options.dryRun) {
219
- spinner.info('Note: the "--dry-run" flag was used, so no files were actually deleted.');
220
- }
221
- });
222
- }
223
- getNSProjectPathsInDirectory(dir = process.cwd()) {
224
- return __awaiter(this, void 0, void 0, function* () {
225
- let nsDirs = [];
226
- const getFiles = (dir) => __awaiter(this, void 0, void 0, function* () {
227
- if (dir.includes("node_modules")) {
228
- return;
226
+ await Promise.all(dirents.map((dirent) => {
227
+ const res = (0, path_1.resolve)(dir, dirent.name);
228
+ if (dirent.isDirectory()) {
229
+ return getFiles(res);
229
230
  }
230
- const dirents = yield (0, promises_1.readdir)(dir, { withFileTypes: true }).catch((err) => {
231
- this.$logger.trace('Failed to read directory "%s". Error is:', dir, err);
232
- return [];
233
- });
234
- const hasNSConfig = dirents.some((ent) => ent.name.includes("nativescript.config.ts") ||
235
- ent.name.includes("nativescript.config.js"));
236
- if (hasNSConfig) {
237
- nsDirs.push(dir);
238
- return;
239
- }
240
- yield Promise.all(dirents.map((dirent) => {
241
- const res = (0, path_1.resolve)(dir, dirent.name);
242
- if (dirent.isDirectory()) {
243
- return getFiles(res);
244
- }
245
- }));
246
- });
247
- yield getFiles(dir);
248
- return nsDirs;
249
- });
231
+ }));
232
+ };
233
+ await getFiles(dir);
234
+ return nsDirs;
250
235
  }
251
236
  }
252
237
  exports.CleanCommand = CleanCommand;
@@ -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.ValidatePlatformCommandBase = void 0;
13
4
  class ValidatePlatformCommandBase {
@@ -17,25 +8,21 @@ class ValidatePlatformCommandBase {
17
8
  this.$platformValidationService = $platformValidationService;
18
9
  this.$projectData = $projectData;
19
10
  }
20
- canExecuteCommandBase(platform, options) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- options = options || {};
23
- const validatePlatformOutput = yield this.validatePlatformBase(platform, options.notConfiguredEnvOptions);
24
- const canExecute = this.canExecuteCommand(validatePlatformOutput);
25
- let result = canExecute;
26
- if (canExecute && options.validateOptions) {
27
- result = yield this.$platformValidationService.validateOptions(this.$options.provision, this.$options.teamId, this.$projectData, platform);
28
- }
29
- return result;
30
- });
11
+ async canExecuteCommandBase(platform, options) {
12
+ options = options || {};
13
+ const validatePlatformOutput = await this.validatePlatformBase(platform, options.notConfiguredEnvOptions);
14
+ const canExecute = this.canExecuteCommand(validatePlatformOutput);
15
+ let result = canExecute;
16
+ if (canExecute && options.validateOptions) {
17
+ result = await this.$platformValidationService.validateOptions(this.$options.provision, this.$options.teamId, this.$projectData, platform);
18
+ }
19
+ return result;
31
20
  }
32
- validatePlatformBase(platform, notConfiguredEnvOptions) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- const platformData = this.$platformsDataService.getPlatformData(platform, this.$projectData);
35
- const platformProjectService = platformData.platformProjectService;
36
- const result = yield platformProjectService.validate(this.$projectData, this.$options, notConfiguredEnvOptions);
37
- return result;
38
- });
21
+ async validatePlatformBase(platform, notConfiguredEnvOptions) {
22
+ const platformData = this.$platformsDataService.getPlatformData(platform, this.$projectData);
23
+ const platformProjectService = platformData.platformProjectService;
24
+ const result = await platformProjectService.validate(this.$projectData, this.$options, notConfiguredEnvOptions);
25
+ return result;
39
26
  }
40
27
  canExecuteCommand(validatePlatformOutput) {
41
28
  return (validatePlatformOutput &&
@@ -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.ConfigSetCommand = exports.ConfigGetCommand = exports.ConfigListCommand = void 0;
13
4
  const yok_1 = require("../common/yok");
@@ -19,21 +10,19 @@ class ConfigListCommand {
19
10
  this.$logger = $logger;
20
11
  this.allowedParameters = [];
21
12
  }
22
- execute(args) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- try {
25
- const config = this.$projectConfigService.readConfig();
26
- if (this.$options.json) {
27
- console.log(JSON.stringify(config));
28
- }
29
- else {
30
- this.$logger.info(this.getValueString(config));
31
- }
13
+ async execute(args) {
14
+ try {
15
+ const config = this.$projectConfigService.readConfig();
16
+ if (this.$options.json) {
17
+ console.log(JSON.stringify(config));
32
18
  }
33
- catch (error) {
34
- this.$logger.info("Failed to read config. Error is: ", error);
19
+ else {
20
+ this.$logger.info(this.getValueString(config));
35
21
  }
36
- });
22
+ }
23
+ catch (error) {
24
+ this.$logger.info("Failed to read config. Error is: ", error);
25
+ }
37
26
  }
38
27
  getValueString(value, depth = 0) {
39
28
  const indent = () => " ".repeat(depth);
@@ -59,24 +48,20 @@ class ConfigGetCommand {
59
48
  this.$errors = $errors;
60
49
  this.allowedParameters = [];
61
50
  }
62
- execute(args) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- try {
65
- const [key] = args;
66
- const current = this.$projectConfigService.getValue(key);
67
- this.$logger.info(current);
68
- }
69
- catch (err) {
70
- }
71
- });
51
+ async execute(args) {
52
+ try {
53
+ const [key] = args;
54
+ const current = this.$projectConfigService.getValue(key);
55
+ this.$logger.info(current);
56
+ }
57
+ catch (err) {
58
+ }
72
59
  }
73
- canExecute(args) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- if (!args[0]) {
76
- this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
77
- }
78
- return true;
79
- });
60
+ async canExecute(args) {
61
+ if (!args[0]) {
62
+ this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
63
+ }
64
+ return true;
80
65
  }
81
66
  }
82
67
  exports.ConfigGetCommand = ConfigGetCommand;
@@ -87,38 +72,34 @@ class ConfigSetCommand {
87
72
  this.$errors = $errors;
88
73
  this.allowedParameters = [];
89
74
  }
90
- execute(args) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- const [key, value] = args;
93
- const current = this.$projectConfigService.getValue(key);
94
- if (current && typeof current === "object") {
95
- this.$errors.fail(`Unable to change object values. Please update individual values instead.\nEg: ns config set android.codeCache true`);
96
- }
97
- const convertedValue = this.getConvertedValue(value);
98
- const existingKey = current !== undefined;
99
- const keyDisplay = color_1.color.green(key);
100
- const currentDisplay = color_1.color.yellow(current);
101
- const updatedDisplay = color_1.color.cyan(convertedValue);
102
- this.$logger.info(`${existingKey ? "Updating" : "Setting"} ${keyDisplay}${existingKey ? ` from ${currentDisplay} ` : " "}to ${updatedDisplay}`);
103
- try {
104
- yield this.$projectConfigService.setValue(key, convertedValue);
105
- this.$logger.info("Done");
106
- }
107
- catch (error) {
108
- this.$logger.info("Could not update conifg. Error is: ", error);
109
- }
110
- });
75
+ async execute(args) {
76
+ const [key, value] = args;
77
+ const current = this.$projectConfigService.getValue(key);
78
+ if (current && typeof current === "object") {
79
+ this.$errors.fail(`Unable to change object values. Please update individual values instead.\nEg: ns config set android.codeCache true`);
80
+ }
81
+ const convertedValue = this.getConvertedValue(value);
82
+ const existingKey = current !== undefined;
83
+ const keyDisplay = color_1.color.green(key);
84
+ const currentDisplay = color_1.color.yellow(current);
85
+ const updatedDisplay = color_1.color.cyan(convertedValue);
86
+ this.$logger.info(`${existingKey ? "Updating" : "Setting"} ${keyDisplay}${existingKey ? ` from ${currentDisplay} ` : " "}to ${updatedDisplay}`);
87
+ try {
88
+ await this.$projectConfigService.setValue(key, convertedValue);
89
+ this.$logger.info("Done");
90
+ }
91
+ catch (error) {
92
+ this.$logger.info("Could not update conifg. Error is: ", error);
93
+ }
111
94
  }
112
- canExecute(args) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- if (!args[0]) {
115
- this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
116
- }
117
- if (!args[1]) {
118
- this.$errors.failWithHelp("You must specify a value.");
119
- }
120
- return true;
121
- });
95
+ async canExecute(args) {
96
+ if (!args[0]) {
97
+ this.$errors.failWithHelp("You must specify a key. Eg: ios.id");
98
+ }
99
+ if (!args[1]) {
100
+ this.$errors.failWithHelp("You must specify a value.");
101
+ }
102
+ return true;
122
103
  }
123
104
  getConvertedValue(v) {
124
105
  try {