@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.CreateProjectCommand = void 0;
13
4
  const constants = require("../constants");
@@ -27,140 +18,134 @@ class CreateProjectCommand {
27
18
  this.allowedParameters = [this.$stringParameter];
28
19
  this.isInteractionIntroShown = false;
29
20
  }
30
- execute(args) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const interactiveAdverbs = ["First", "Next", "Finally"];
33
- const getNextInteractiveAdverb = () => {
34
- return interactiveAdverbs.shift() || "Next";
35
- };
36
- if ((this.$options.tsc ||
37
- this.$options.ng ||
38
- this.$options.vue ||
39
- this.$options.react ||
40
- this.$options.solid ||
41
- this.$options.svelte ||
42
- this.$options.js) &&
43
- this.$options.template) {
44
- this.$errors.failWithHelp("You cannot use a flavor option like --ng, --vue, --react, --solid, --svelte, --tsc and --js together with --template.");
45
- }
46
- let projectName = args[0];
47
- let selectedTemplate;
48
- if (this.$options["vision-ng"] ||
49
- (this.$options.vision && this.$options.ng)) {
50
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-ng"];
51
- }
52
- else if (this.$options["vision-react"] ||
53
- (this.$options.vision && this.$options.react)) {
54
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-react"];
55
- }
56
- else if (this.$options["vision-solid"] ||
57
- (this.$options.vision && this.$options.solid)) {
58
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-solid"];
59
- }
60
- else if (this.$options["vision-svelte"] ||
61
- (this.$options.vision && this.$options.svelte)) {
62
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-svelte"];
63
- }
64
- else if (this.$options["vision-vue"] ||
65
- (this.$options.vision && (this.$options.vue || this.$options.vuejs))) {
66
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-vue"];
67
- }
68
- else if ((this.$options.vue || this.$options.vuejs) &&
69
- this.$options.tsc) {
70
- selectedTemplate = "@nativescript/template-blank-vue-ts";
71
- }
72
- else if (this.$options.vision) {
73
- selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision"];
74
- }
75
- else if (this.$options.js) {
76
- selectedTemplate = constants.JAVASCRIPT_NAME;
77
- }
78
- else if (this.$options.tsc) {
79
- selectedTemplate = constants.TYPESCRIPT_NAME;
80
- }
81
- else if (this.$options.ng) {
82
- selectedTemplate = constants.ANGULAR_NAME;
83
- }
84
- else if (this.$options.vue || this.$options.vuejs) {
85
- selectedTemplate = constants.VUE_NAME;
86
- }
87
- else if (this.$options.solid) {
88
- selectedTemplate = constants.SOLID_NAME;
89
- }
90
- else if (this.$options.react) {
91
- selectedTemplate = constants.REACT_NAME;
92
- }
93
- else if (this.$options.svelte) {
94
- selectedTemplate = constants.SVELTE_NAME;
95
- }
96
- else {
97
- selectedTemplate = this.$options.template;
98
- }
99
- if (!projectName && (0, helpers_1.isInteractive)()) {
100
- this.printInteractiveCreationIntroIfNeeded();
101
- projectName = yield this.$prompter.getString(`${getNextInteractiveAdverb()}, what will be the name of your app?`, { allowEmpty: false });
102
- this.$logger.info();
103
- }
104
- projectName = yield this.$projectService.validateProjectName({
105
- projectName: projectName,
106
- force: this.$options.force,
107
- pathToProject: this.$options.path,
108
- });
109
- if (!selectedTemplate && (0, helpers_1.isInteractive)()) {
110
- this.printInteractiveCreationIntroIfNeeded();
111
- selectedTemplate = yield this.interactiveFlavorAndTemplateSelection(getNextInteractiveAdverb(), getNextInteractiveAdverb());
112
- }
113
- this.createdProjectData = yield this.$projectService.createProject({
114
- projectName: projectName,
115
- template: selectedTemplate,
116
- appId: this.$options.appid,
117
- pathToProject: this.$options.path,
118
- force: true,
119
- ignoreScripts: this.$options.ignoreScripts,
120
- });
21
+ async execute(args) {
22
+ const interactiveAdverbs = ["First", "Next", "Finally"];
23
+ const getNextInteractiveAdverb = () => {
24
+ return interactiveAdverbs.shift() || "Next";
25
+ };
26
+ if ((this.$options.tsc ||
27
+ this.$options.ng ||
28
+ this.$options.vue ||
29
+ this.$options.react ||
30
+ this.$options.solid ||
31
+ this.$options.svelte ||
32
+ this.$options.js) &&
33
+ this.$options.template) {
34
+ this.$errors.failWithHelp("You cannot use a flavor option like --ng, --vue, --react, --solid, --svelte, --tsc and --js together with --template.");
35
+ }
36
+ let projectName = args[0];
37
+ let selectedTemplate;
38
+ if (this.$options["vision-ng"] ||
39
+ (this.$options.vision && this.$options.ng)) {
40
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-ng"];
41
+ }
42
+ else if (this.$options["vision-react"] ||
43
+ (this.$options.vision && this.$options.react)) {
44
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-react"];
45
+ }
46
+ else if (this.$options["vision-solid"] ||
47
+ (this.$options.vision && this.$options.solid)) {
48
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-solid"];
49
+ }
50
+ else if (this.$options["vision-svelte"] ||
51
+ (this.$options.vision && this.$options.svelte)) {
52
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-svelte"];
53
+ }
54
+ else if (this.$options["vision-vue"] ||
55
+ (this.$options.vision && (this.$options.vue || this.$options.vuejs))) {
56
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-vue"];
57
+ }
58
+ else if ((this.$options.vue || this.$options.vuejs) &&
59
+ this.$options.tsc) {
60
+ selectedTemplate = "@nativescript/template-blank-vue-ts";
61
+ }
62
+ else if (this.$options.vision) {
63
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision"];
64
+ }
65
+ else if (this.$options.js) {
66
+ selectedTemplate = constants.JAVASCRIPT_NAME;
67
+ }
68
+ else if (this.$options.tsc) {
69
+ selectedTemplate = constants.TYPESCRIPT_NAME;
70
+ }
71
+ else if (this.$options.ng) {
72
+ selectedTemplate = constants.ANGULAR_NAME;
73
+ }
74
+ else if (this.$options.vue || this.$options.vuejs) {
75
+ selectedTemplate = constants.VUE_NAME;
76
+ }
77
+ else if (this.$options.solid) {
78
+ selectedTemplate = constants.SOLID_NAME;
79
+ }
80
+ else if (this.$options.react) {
81
+ selectedTemplate = constants.REACT_NAME;
82
+ }
83
+ else if (this.$options.svelte) {
84
+ selectedTemplate = constants.SVELTE_NAME;
85
+ }
86
+ else {
87
+ selectedTemplate = this.$options.template;
88
+ }
89
+ if (!projectName && (0, helpers_1.isInteractive)()) {
90
+ this.printInteractiveCreationIntroIfNeeded();
91
+ projectName = await this.$prompter.getString(`${getNextInteractiveAdverb()}, what will be the name of your app?`, { allowEmpty: false });
92
+ this.$logger.info();
93
+ }
94
+ projectName = await this.$projectService.validateProjectName({
95
+ projectName: projectName,
96
+ force: this.$options.force,
97
+ pathToProject: this.$options.path,
121
98
  });
122
- }
123
- interactiveFlavorAndTemplateSelection(flavorAdverb, templateAdverb) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const selectedFlavor = yield this.interactiveFlavorSelection(flavorAdverb);
126
- const selectedTemplate = yield this.interactiveTemplateSelection(selectedFlavor, templateAdverb);
127
- return selectedTemplate;
99
+ if (!selectedTemplate && (0, helpers_1.isInteractive)()) {
100
+ this.printInteractiveCreationIntroIfNeeded();
101
+ selectedTemplate = await this.interactiveFlavorAndTemplateSelection(getNextInteractiveAdverb(), getNextInteractiveAdverb());
102
+ }
103
+ this.createdProjectData = await this.$projectService.createProject({
104
+ projectName: projectName,
105
+ template: selectedTemplate,
106
+ appId: this.$options.appid,
107
+ pathToProject: this.$options.path,
108
+ force: true,
109
+ ignoreScripts: this.$options.ignoreScripts,
128
110
  });
129
111
  }
130
- interactiveFlavorSelection(adverb) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const flavorSelection = yield this.$prompter.promptForDetailedChoice(`${adverb}, which style of NativeScript project would you like to use:`, [
133
- {
134
- key: constants.NgFlavorName,
135
- description: "Learn more at https://nativescript.org/angular",
136
- },
137
- {
138
- key: constants.ReactFlavorName,
139
- description: "Learn more at https://github.com/shirakaba/react-nativescript",
140
- },
141
- {
142
- key: constants.VueFlavorName,
143
- description: "Learn more at https://nativescript.org/vue",
144
- },
145
- {
146
- key: constants.SolidFlavorName,
147
- description: "Learn more at https://www.solidjs.com",
148
- },
149
- {
150
- key: constants.SvelteFlavorName,
151
- description: "Learn more at https://svelte-native.technology",
152
- },
153
- {
154
- key: constants.TsFlavorName,
155
- description: "Learn more at https://nativescript.org/typescript",
156
- },
157
- {
158
- key: constants.JsFlavorName,
159
- description: "Use NativeScript without any framework",
160
- },
161
- ]);
162
- return flavorSelection;
163
- });
112
+ async interactiveFlavorAndTemplateSelection(flavorAdverb, templateAdverb) {
113
+ const selectedFlavor = await this.interactiveFlavorSelection(flavorAdverb);
114
+ const selectedTemplate = await this.interactiveTemplateSelection(selectedFlavor, templateAdverb);
115
+ return selectedTemplate;
116
+ }
117
+ async interactiveFlavorSelection(adverb) {
118
+ const flavorSelection = await this.$prompter.promptForDetailedChoice(`${adverb}, which style of NativeScript project would you like to use:`, [
119
+ {
120
+ key: constants.NgFlavorName,
121
+ description: "Learn more at https://nativescript.org/angular",
122
+ },
123
+ {
124
+ key: constants.ReactFlavorName,
125
+ description: "Learn more at https://github.com/shirakaba/react-nativescript",
126
+ },
127
+ {
128
+ key: constants.VueFlavorName,
129
+ description: "Learn more at https://nativescript.org/vue",
130
+ },
131
+ {
132
+ key: constants.SolidFlavorName,
133
+ description: "Learn more at https://www.solidjs.com",
134
+ },
135
+ {
136
+ key: constants.SvelteFlavorName,
137
+ description: "Learn more at https://svelte-native.technology",
138
+ },
139
+ {
140
+ key: constants.TsFlavorName,
141
+ description: "Learn more at https://nativescript.org/typescript",
142
+ },
143
+ {
144
+ key: constants.JsFlavorName,
145
+ description: "Use NativeScript without any framework",
146
+ },
147
+ ]);
148
+ return flavorSelection;
164
149
  }
165
150
  printInteractiveCreationIntroIfNeeded() {
166
151
  if (!this.isInteractionIntroShown) {
@@ -173,53 +158,51 @@ can skip this prompt next time using the --template option, or the --ng, --react
173
158
  `);
174
159
  }
175
160
  }
176
- interactiveTemplateSelection(flavorSelection, adverb) {
177
- return __awaiter(this, void 0, void 0, function* () {
178
- const selectedFlavorTemplates = [];
179
- let selectedTemplate;
180
- switch (flavorSelection) {
181
- case constants.NgFlavorName: {
182
- selectedFlavorTemplates.push(...this.getNgTemplates());
183
- break;
184
- }
185
- case constants.ReactFlavorName: {
186
- selectedFlavorTemplates.push(...this.getReactTemplates());
187
- break;
188
- }
189
- case constants.VueFlavorName: {
190
- selectedFlavorTemplates.push(...this.getVueTemplates());
191
- break;
192
- }
193
- case constants.SolidFlavorName: {
194
- selectedFlavorTemplates.push(...this.getSolidTemplates());
195
- break;
196
- }
197
- case constants.SvelteFlavorName: {
198
- selectedFlavorTemplates.push(...this.getSvelteTemplates());
199
- break;
200
- }
201
- case constants.TsFlavorName: {
202
- selectedFlavorTemplates.push(...this.getTsTemplates());
203
- break;
204
- }
205
- case constants.JsFlavorName: {
206
- selectedFlavorTemplates.push(...this.getJsTemplates());
207
- break;
208
- }
161
+ async interactiveTemplateSelection(flavorSelection, adverb) {
162
+ const selectedFlavorTemplates = [];
163
+ let selectedTemplate;
164
+ switch (flavorSelection) {
165
+ case constants.NgFlavorName: {
166
+ selectedFlavorTemplates.push(...this.getNgTemplates());
167
+ break;
209
168
  }
210
- if (selectedFlavorTemplates.length > 1) {
211
- this.$logger.info();
212
- const templateChoices = selectedFlavorTemplates.map((template) => {
213
- return { key: template.key, description: template.description };
214
- });
215
- const selectedTemplateKey = yield this.$prompter.promptForDetailedChoice(`${adverb}, which template would you like to start from:`, templateChoices);
216
- selectedTemplate = selectedFlavorTemplates.find((t) => t.key === selectedTemplateKey).value;
169
+ case constants.ReactFlavorName: {
170
+ selectedFlavorTemplates.push(...this.getReactTemplates());
171
+ break;
217
172
  }
218
- else {
219
- selectedTemplate = selectedFlavorTemplates[0].value;
173
+ case constants.VueFlavorName: {
174
+ selectedFlavorTemplates.push(...this.getVueTemplates());
175
+ break;
220
176
  }
221
- return selectedTemplate;
222
- });
177
+ case constants.SolidFlavorName: {
178
+ selectedFlavorTemplates.push(...this.getSolidTemplates());
179
+ break;
180
+ }
181
+ case constants.SvelteFlavorName: {
182
+ selectedFlavorTemplates.push(...this.getSvelteTemplates());
183
+ break;
184
+ }
185
+ case constants.TsFlavorName: {
186
+ selectedFlavorTemplates.push(...this.getTsTemplates());
187
+ break;
188
+ }
189
+ case constants.JsFlavorName: {
190
+ selectedFlavorTemplates.push(...this.getJsTemplates());
191
+ break;
192
+ }
193
+ }
194
+ if (selectedFlavorTemplates.length > 1) {
195
+ this.$logger.info();
196
+ const templateChoices = selectedFlavorTemplates.map((template) => {
197
+ return { key: template.key, description: template.description };
198
+ });
199
+ const selectedTemplateKey = await this.$prompter.promptForDetailedChoice(`${adverb}, which template would you like to start from:`, templateChoices);
200
+ selectedTemplate = selectedFlavorTemplates.find((t) => t.key === selectedTemplateKey).value;
201
+ }
202
+ else {
203
+ selectedTemplate = selectedFlavorTemplates[0].value;
204
+ }
205
+ return selectedTemplate;
223
206
  }
224
207
  getJsTemplates() {
225
208
  const templates = [
@@ -366,55 +349,54 @@ can skip this prompt next time using the --template option, or the --ng, --react
366
349
  ];
367
350
  return templates;
368
351
  }
369
- postCommandAction(args) {
370
- return __awaiter(this, void 0, void 0, function* () {
371
- const { projectDir, projectName } = this.createdProjectData;
372
- const relativePath = path.relative(process.cwd(), projectDir);
373
- const greyDollarSign = color_1.color.grey("$");
374
- this.$logger.clearScreen();
375
- let runDebugNotes = [];
376
- if (this.$options.vision ||
377
- this.$options["vision-ng"] ||
378
- this.$options["vision-react"] ||
379
- this.$options["vision-solid"] ||
380
- this.$options["vision-svelte"] ||
381
- this.$options["vision-vue"]) {
382
- runDebugNotes = [
383
- `Run the project on Vision Pro with:`,
384
- "",
385
- ` ${greyDollarSign} ${color_1.color.green("ns run visionos --no-hmr")}`,
386
- ];
387
- }
388
- else {
389
- runDebugNotes = [
390
- `Run the project on multiple devices:`,
391
- "",
392
- ` ${greyDollarSign} ${color_1.color.green("ns run ios")}`,
393
- ` ${greyDollarSign} ${color_1.color.green("ns run android")}`,
394
- "",
395
- "Debug the project with Chrome DevTools:",
396
- "",
397
- ` ${greyDollarSign} ${color_1.color.green("ns debug ios")}`,
398
- ` ${greyDollarSign} ${color_1.color.green("ns debug android")}`,
399
- ];
400
- }
401
- this.$logger.info([
402
- [
403
- color_1.color.green(`Project`),
404
- color_1.color.cyan(projectName),
405
- color_1.color.green(`was successfully created.`),
406
- ].join(" "),
352
+ async postCommandAction(args) {
353
+ const { projectDir, projectName } = this.createdProjectData;
354
+ const relativePath = path.relative(process.cwd(), projectDir);
355
+ const greyDollarSign = color_1.color.grey("$");
356
+ this.$logger.clearScreen();
357
+ let runDebugNotes = [];
358
+ if (this.$options.vision ||
359
+ this.$options["vision-ng"] ||
360
+ this.$options["vision-react"] ||
361
+ this.$options["vision-solid"] ||
362
+ this.$options["vision-svelte"] ||
363
+ this.$options["vision-vue"]) {
364
+ runDebugNotes = [
365
+ `Run the project on Vision Pro with:`,
407
366
  "",
408
- `Now you can navigate to your project with ${color_1.color.cyan(`cd ${relativePath}`)} and then:`,
367
+ ` ${greyDollarSign} ${color_1.color.green("ns run visionos --no-hmr")}`,
368
+ ];
369
+ }
370
+ else {
371
+ runDebugNotes = [
372
+ `Run the project on multiple devices:`,
409
373
  "",
410
- ...runDebugNotes,
411
- ``,
412
- `For more options consult the docs or run ${color_1.color.green("ns --help")}`,
374
+ ` ${greyDollarSign} ${color_1.color.green("ns run ios")}`,
375
+ ` ${greyDollarSign} ${color_1.color.green("ns run android")}`,
413
376
  "",
414
- ].join("\n"));
415
- });
377
+ "Debug the project with Chrome DevTools:",
378
+ "",
379
+ ` ${greyDollarSign} ${color_1.color.green("ns debug ios")}`,
380
+ ` ${greyDollarSign} ${color_1.color.green("ns debug android")}`,
381
+ ];
382
+ }
383
+ this.$logger.info([
384
+ [
385
+ color_1.color.green(`Project`),
386
+ color_1.color.cyan(projectName),
387
+ color_1.color.green(`was successfully created.`),
388
+ ].join(" "),
389
+ "",
390
+ `Now you can navigate to your project with ${color_1.color.cyan(`cd ${relativePath}`)} and then:`,
391
+ "",
392
+ ...runDebugNotes,
393
+ ``,
394
+ `For more options consult the docs or run ${color_1.color.green("ns --help")}`,
395
+ "",
396
+ ].join("\n"));
416
397
  }
417
398
  }
399
+ exports.CreateProjectCommand = CreateProjectCommand;
418
400
  CreateProjectCommand.BlankTemplateKey = "Blank";
419
401
  CreateProjectCommand.BlankTemplateDescription = "A blank app";
420
402
  CreateProjectCommand.BlankTsTemplateKey = "Blank Typescript";
@@ -427,5 +409,4 @@ CreateProjectCommand.DrawerTemplateKey = "SideDrawer";
427
409
  CreateProjectCommand.DrawerTemplateDescription = "An app with pre-built pages that uses a drawer for navigation";
428
410
  CreateProjectCommand.TabsTemplateKey = "Tabs";
429
411
  CreateProjectCommand.TabsTemplateDescription = "An app with pre-built pages that uses tabs for navigation";
430
- exports.CreateProjectCommand = CreateProjectCommand;
431
412
  yok_1.injector.registerCommand("create", CreateProjectCommand);