@akylas/nativescript-cli 8.7.2 → 8.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AutoCompletionService = void 0;
19
10
  const os_1 = require("os");
@@ -121,15 +112,13 @@ class AutoCompletionService {
121
112
  this.$logger.info("Restart your shell to disable command auto-completion.");
122
113
  }
123
114
  }
124
- enableAutoCompletion() {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- yield this.updateCLIShellScript();
127
- _.each(this.shellProfiles, (shellFile) => this.addAutoCompletionToShellScript(shellFile));
128
- this.removeObsoleteAutoCompletion();
129
- if (this.scriptsOk && this.scriptsUpdated) {
130
- this.$logger.info("Restart your shell to enable command auto-completion.");
131
- }
132
- });
115
+ async enableAutoCompletion() {
116
+ await this.updateCLIShellScript();
117
+ _.each(this.shellProfiles, (shellFile) => this.addAutoCompletionToShellScript(shellFile));
118
+ this.removeObsoleteAutoCompletion();
119
+ if (this.scriptsOk && this.scriptsUpdated) {
120
+ this.$logger.info("Restart your shell to enable command auto-completion.");
121
+ }
133
122
  }
134
123
  isObsoleteAutoCompletionEnabled() {
135
124
  let result = true;
@@ -201,48 +190,47 @@ class AutoCompletionService {
201
190
  }
202
191
  }
203
192
  }
204
- updateCLIShellScript() {
205
- return __awaiter(this, void 0, void 0, function* () {
206
- const filePath = this.cliRunCommandsFile;
207
- try {
208
- let doUpdate = true;
209
- if (this.$fs.exists(filePath)) {
210
- const contents = this.$fs.readText(filePath);
211
- const regExp = new RegExp(AutoCompletionService.GENERATED_TABTAB_COMPLETION_START);
212
- let matchCondition = contents.match(regExp);
213
- if (matchCondition) {
214
- doUpdate = false;
215
- }
193
+ async updateCLIShellScript() {
194
+ const filePath = this.cliRunCommandsFile;
195
+ try {
196
+ let doUpdate = true;
197
+ if (this.$fs.exists(filePath)) {
198
+ const contents = this.$fs.readText(filePath);
199
+ const regExp = new RegExp(AutoCompletionService.GENERATED_TABTAB_COMPLETION_START);
200
+ let matchCondition = contents.match(regExp);
201
+ if (matchCondition) {
202
+ doUpdate = false;
216
203
  }
217
- if (doUpdate) {
218
- const clientExecutableFileName = (this.$staticConfig.CLIENT_NAME_ALIAS || this.$staticConfig.CLIENT_NAME).toLowerCase();
219
- const pathToExecutableFile = path.join(__dirname, `../../../bin/${clientExecutableFileName}.js`);
220
- if (this.$fs.exists(filePath)) {
221
- const existingText = this.$fs.readText(filePath);
222
- let newText = existingText.replace(this.getTabTabCompletionsRegex(), "");
223
- newText = this.removeOboleteTabTabCompletion(newText);
224
- if (newText !== existingText) {
225
- this.$logger.trace("Remove existing AutoCompletion from file %s.", filePath);
226
- this.$fs.writeFile(filePath, newText);
227
- }
204
+ }
205
+ if (doUpdate) {
206
+ const clientExecutableFileName = (this.$staticConfig.CLIENT_NAME_ALIAS || this.$staticConfig.CLIENT_NAME).toLowerCase();
207
+ const pathToExecutableFile = path.join(__dirname, `../../../bin/${clientExecutableFileName}.js`);
208
+ if (this.$fs.exists(filePath)) {
209
+ const existingText = this.$fs.readText(filePath);
210
+ let newText = existingText.replace(this.getTabTabCompletionsRegex(), "");
211
+ newText = this.removeOboleteTabTabCompletion(newText);
212
+ if (newText !== existingText) {
213
+ this.$logger.trace("Remove existing AutoCompletion from file %s.", filePath);
214
+ this.$fs.writeFile(filePath, newText);
228
215
  }
229
- this.$fs.appendFile(filePath, `\n${AutoCompletionService.GENERATED_TABTAB_COMPLETION_START}\n`);
230
- yield this.$childProcess.exec(`"${process.argv[0]}" "${pathToExecutableFile}" completion_generate_script >> "${filePath}"`);
231
- this.$fs.appendFile(filePath, this.completionAliasDefinition);
232
- this.$fs.chmod(filePath, "0644");
233
216
  }
217
+ this.$fs.appendFile(filePath, `\n${AutoCompletionService.GENERATED_TABTAB_COMPLETION_START}\n`);
218
+ await this.$childProcess.exec(`"${process.argv[0]}" "${pathToExecutableFile}" completion_generate_script >> "${filePath}"`);
219
+ this.$fs.appendFile(filePath, this.completionAliasDefinition);
220
+ this.$fs.chmod(filePath, "0644");
234
221
  }
235
- catch (err) {
236
- this.$logger.info("Failed to update %s. Auto-completion may not work. ", filePath);
237
- this.$logger.trace(err);
238
- this.scriptsOk = false;
239
- }
240
- });
222
+ }
223
+ catch (err) {
224
+ this.$logger.info("Failed to update %s. Auto-completion may not work. ", filePath);
225
+ this.$logger.trace(err);
226
+ this.scriptsOk = false;
227
+ }
241
228
  }
242
229
  getHomePath(fileName) {
243
230
  return path.join((0, os_1.homedir)(), fileName);
244
231
  }
245
232
  }
233
+ exports.AutoCompletionService = AutoCompletionService;
246
234
  AutoCompletionService.COMPLETION_START_COMMENT_PATTERN = "###-%s-completion-start-###";
247
235
  AutoCompletionService.COMPLETION_END_COMMENT_PATTERN = "###-%s-completion-end-###";
248
236
  AutoCompletionService.TABTAB_COMPLETION_START_REGEX_PATTERN = "###-begin-%s-completion-###";
@@ -261,5 +249,4 @@ __decorate([
261
249
  __decorate([
262
250
  (0, decorators_1.cache)()
263
251
  ], AutoCompletionService.prototype, "completionShellScriptContent", null);
264
- exports.AutoCompletionService = AutoCompletionService;
265
252
  yok_1.injector.register("autoCompletionService", AutoCompletionService);
@@ -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
  const choki = require("chokidar");
13
4
  const path = require("path");
@@ -24,26 +15,24 @@ class CancellationService {
24
15
  this.$fs.createDirectory(CancellationService.killSwitchDir);
25
16
  }
26
17
  }
27
- begin(name) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- if (!this.$hostInfo.isWindows) {
30
- return;
31
- }
32
- const triggerFile = CancellationService.makeKillSwitchFileName(name);
33
- if (!this.$fs.exists(triggerFile)) {
34
- this.$fs.writeFile(triggerFile, "");
35
- }
36
- this.$logger.trace("Starting watch on killswitch %s", triggerFile);
37
- const watcher = choki
38
- .watch(triggerFile, { ignoreInitial: true })
39
- .on("unlink", (filePath) => {
40
- this.$logger.info(`Exiting process as the file ${filePath} has been deleted. Probably reinstalling CLI while there's a working instance.`);
41
- process.exit(132);
42
- });
43
- if (watcher) {
44
- this.watches[name] = watcher;
45
- }
18
+ async begin(name) {
19
+ if (!this.$hostInfo.isWindows) {
20
+ return;
21
+ }
22
+ const triggerFile = CancellationService.makeKillSwitchFileName(name);
23
+ if (!this.$fs.exists(triggerFile)) {
24
+ this.$fs.writeFile(triggerFile, "");
25
+ }
26
+ this.$logger.trace("Starting watch on killswitch %s", triggerFile);
27
+ const watcher = choki
28
+ .watch(triggerFile, { ignoreInitial: true })
29
+ .on("unlink", (filePath) => {
30
+ this.$logger.info(`Exiting process as the file ${filePath} has been deleted. Probably reinstalling CLI while there's a working instance.`);
31
+ process.exit(132);
46
32
  });
33
+ if (watcher) {
34
+ this.watches[name] = watcher;
35
+ }
47
36
  }
48
37
  end(name) {
49
38
  const watcher = this.watches[name];
@@ -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.CommandsService = void 0;
13
4
  const jaroWinklerDistance = require("../vendor/jaro-winkler_distance");
@@ -40,48 +31,46 @@ class CommandsService {
40
31
  const commands = this.$injector.getRegisteredCommandsNames(opts.includeDevCommands);
41
32
  return _.reject(commands, (command) => _.includes(command, "|"));
42
33
  }
43
- executeCommandUnchecked(commandName, commandArguments) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- this.commands.push({ commandName, commandArguments });
46
- const command = this.$injector.resolveCommand(commandName);
47
- if (command) {
48
- if (!this.$staticConfig.disableAnalytics &&
49
- !command.disableAnalytics &&
50
- !this.$options.disableAnalytics) {
51
- const analyticsService = this.$injector.resolve("analyticsService");
52
- yield analyticsService.checkConsent();
53
- const beautifiedCommandName = this.beautifyCommandName(commandName).replace(/\|/g, " ");
54
- const googleAnalyticsPageData = {
55
- googleAnalyticsDataType: "pageview",
56
- path: beautifiedCommandName,
57
- title: beautifiedCommandName,
58
- };
59
- yield analyticsService.trackInGoogleAnalytics(googleAnalyticsPageData);
60
- yield this.$optionsTracker.trackOptions(this.$options);
61
- }
62
- const shouldExecuteHooks = !this.$staticConfig.disableCommandHooks &&
63
- (command.enableHooks === undefined || command.enableHooks === true);
64
- if (shouldExecuteHooks) {
65
- const hierarchicalCommandName = this.$injector.buildHierarchicalCommand(commandName, commandArguments);
66
- if (hierarchicalCommandName) {
67
- commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName, "|*", "-");
68
- commandName = helpers.stringReplaceAll(commandName, "|", "-");
69
- }
70
- yield this.$hooksService.executeBeforeHooks(commandName);
71
- }
72
- yield command.execute(commandArguments);
73
- if (command.postCommandAction) {
74
- yield command.postCommandAction(commandArguments);
75
- }
76
- if (shouldExecuteHooks) {
77
- yield this.$hooksService.executeAfterHooks(commandName);
34
+ async executeCommandUnchecked(commandName, commandArguments) {
35
+ this.commands.push({ commandName, commandArguments });
36
+ const command = this.$injector.resolveCommand(commandName);
37
+ if (command) {
38
+ if (!this.$staticConfig.disableAnalytics &&
39
+ !command.disableAnalytics &&
40
+ !this.$options.disableAnalytics) {
41
+ const analyticsService = this.$injector.resolve("analyticsService");
42
+ await analyticsService.checkConsent();
43
+ const beautifiedCommandName = this.beautifyCommandName(commandName).replace(/\|/g, " ");
44
+ const googleAnalyticsPageData = {
45
+ googleAnalyticsDataType: "pageview",
46
+ path: beautifiedCommandName,
47
+ title: beautifiedCommandName,
48
+ };
49
+ await analyticsService.trackInGoogleAnalytics(googleAnalyticsPageData);
50
+ await this.$optionsTracker.trackOptions(this.$options);
51
+ }
52
+ const shouldExecuteHooks = !this.$staticConfig.disableCommandHooks &&
53
+ (command.enableHooks === undefined || command.enableHooks === true);
54
+ if (shouldExecuteHooks) {
55
+ const hierarchicalCommandName = this.$injector.buildHierarchicalCommand(commandName, commandArguments);
56
+ if (hierarchicalCommandName) {
57
+ commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName, "|*", "-");
58
+ commandName = helpers.stringReplaceAll(commandName, "|", "-");
78
59
  }
79
- this.commands.pop();
80
- return true;
60
+ await this.$hooksService.executeBeforeHooks(commandName);
61
+ }
62
+ await command.execute(commandArguments);
63
+ if (command.postCommandAction) {
64
+ await command.postCommandAction(commandArguments);
65
+ }
66
+ if (shouldExecuteHooks) {
67
+ await this.$hooksService.executeAfterHooks(commandName);
81
68
  }
82
69
  this.commands.pop();
83
- return false;
84
- });
70
+ return true;
71
+ }
72
+ this.commands.pop();
73
+ return false;
85
74
  }
86
75
  printHelpSuggestion(commandName) {
87
76
  const command = commandName
@@ -91,145 +80,133 @@ class CommandsService {
91
80
  this.$logger.printMarkdown(`__Run \`${commandHelp}\` for more information.__`);
92
81
  return;
93
82
  }
94
- executeCommandAction(commandName, commandArguments, action) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- return this.$errors.beginCommand(() => action.apply(this, [commandName, commandArguments]), () => this.printHelpSuggestion(commandName));
97
- });
83
+ async executeCommandAction(commandName, commandArguments, action) {
84
+ return this.$errors.beginCommand(() => action.apply(this, [commandName, commandArguments]), () => this.printHelpSuggestion(commandName));
98
85
  }
99
- tryExecuteCommandAction(commandName, commandArguments) {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- const command = this.$injector.resolveCommand(commandName);
102
- if (!command || !command.isHierarchicalCommand) {
103
- const dashedOptions = command ? command.dashedOptions : null;
104
- this.$options.validateOptions(dashedOptions);
105
- }
106
- return this.canExecuteCommand(commandName, commandArguments);
107
- });
108
- }
109
- tryExecuteCommand(commandName, commandArguments) {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- const canExecuteResult = yield this.executeCommandAction(commandName, commandArguments, this.tryExecuteCommandAction);
112
- const canExecute = typeof canExecuteResult === "object"
113
- ? canExecuteResult.canExecute
114
- : canExecuteResult;
115
- if (canExecute) {
116
- yield this.executeCommandAction(commandName, commandArguments, this.executeCommandUnchecked);
117
- }
118
- else {
119
- const command = this.$injector.resolveCommand(commandName);
120
- if (command) {
121
- let commandWithArgs = commandName;
122
- if (commandArguments && commandArguments.length) {
123
- commandWithArgs += ` ${commandArguments.join(" ")}`;
124
- }
125
- this.$logger.error(`Command '${commandWithArgs}' cannot be executed.`);
126
- yield this.printHelpSuggestion(commandName);
127
- }
128
- }
129
- });
86
+ async tryExecuteCommandAction(commandName, commandArguments) {
87
+ const command = this.$injector.resolveCommand(commandName);
88
+ if (!command || !command.isHierarchicalCommand) {
89
+ const dashedOptions = command ? command.dashedOptions : null;
90
+ this.$options.validateOptions(dashedOptions);
91
+ }
92
+ return this.canExecuteCommand(commandName, commandArguments);
130
93
  }
131
- canExecuteCommand(commandName, commandArguments, isDynamicCommand) {
132
- return __awaiter(this, void 0, void 0, function* () {
94
+ async tryExecuteCommand(commandName, commandArguments) {
95
+ const canExecuteResult = await this.executeCommandAction(commandName, commandArguments, this.tryExecuteCommandAction);
96
+ const canExecute = typeof canExecuteResult === "object"
97
+ ? canExecuteResult.canExecute
98
+ : canExecuteResult;
99
+ if (canExecute) {
100
+ await this.executeCommandAction(commandName, commandArguments, this.executeCommandUnchecked);
101
+ }
102
+ else {
133
103
  const command = this.$injector.resolveCommand(commandName);
134
- const beautifiedName = helpers.stringReplaceAll(commandName, "|", " ");
135
104
  if (command) {
136
- if (command.isDisabled) {
137
- this.$errors.fail("This command is not applicable to your environment.");
138
- }
139
- if (command.canExecute) {
140
- return yield command.canExecute(commandArguments);
141
- }
142
- if (yield this.$injector.isValidHierarchicalCommand(commandName, commandArguments)) {
143
- return true;
105
+ let commandWithArgs = commandName;
106
+ if (commandArguments && commandArguments.length) {
107
+ commandWithArgs += ` ${commandArguments.join(" ")}`;
144
108
  }
145
- if (yield this.validateCommandArguments(command, commandArguments)) {
146
- return true;
147
- }
148
- this.$errors.fail(`Unable to execute command '${beautifiedName}'.`);
149
- return false;
109
+ this.$logger.error(`Command '${commandWithArgs}' cannot be executed.`);
110
+ await this.printHelpSuggestion(commandName);
150
111
  }
151
- const commandInfo = {
152
- inputStrings: [commandName, ...commandArguments],
153
- commandDelimiter: "|",
154
- defaultCommandDelimiter: "|*",
155
- };
156
- const extensionData = yield this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
157
- if (extensionData) {
158
- this.$logger.warn(extensionData.installationMessage);
112
+ }
113
+ }
114
+ async canExecuteCommand(commandName, commandArguments, isDynamicCommand) {
115
+ const command = this.$injector.resolveCommand(commandName);
116
+ const beautifiedName = helpers.stringReplaceAll(commandName, "|", " ");
117
+ if (command) {
118
+ if (command.isDisabled) {
119
+ this.$errors.fail("This command is not applicable to your environment.");
159
120
  }
160
- else {
161
- this.$logger.error("Unknown command '%s'.", beautifiedName);
162
- yield this.printHelpSuggestion();
163
- this.tryMatchCommand(commandName);
121
+ if (command.canExecute) {
122
+ return await command.canExecute(commandArguments);
164
123
  }
124
+ if (await this.$injector.isValidHierarchicalCommand(commandName, commandArguments)) {
125
+ return true;
126
+ }
127
+ if (await this.validateCommandArguments(command, commandArguments)) {
128
+ return true;
129
+ }
130
+ this.$errors.fail(`Unable to execute command '${beautifiedName}'.`);
165
131
  return false;
166
- });
132
+ }
133
+ const commandInfo = {
134
+ inputStrings: [commandName, ...commandArguments],
135
+ commandDelimiter: "|",
136
+ defaultCommandDelimiter: "|*",
137
+ };
138
+ const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
139
+ if (extensionData) {
140
+ this.$logger.warn(extensionData.installationMessage);
141
+ }
142
+ else {
143
+ this.$logger.error("Unknown command '%s'.", beautifiedName);
144
+ await this.printHelpSuggestion();
145
+ this.tryMatchCommand(commandName);
146
+ }
147
+ return false;
167
148
  }
168
- validateMandatoryParams(commandArguments, mandatoryParams) {
169
- return __awaiter(this, void 0, void 0, function* () {
170
- const commandArgsHelper = new CommandArgumentsValidationHelper(true, commandArguments);
171
- if (mandatoryParams.length > 0) {
172
- if (mandatoryParams.length > commandArguments.length) {
173
- const customErrorMessages = _.map(mandatoryParams, (mp) => mp.errorMessage);
174
- customErrorMessages.splice(0, 0, "You need to provide all the required parameters.");
175
- this.$errors.failWithHelp(customErrorMessages.join(os_1.EOL));
176
- }
177
- for (let mandatoryParamIndex = 0; mandatoryParamIndex < mandatoryParams.length; ++mandatoryParamIndex) {
178
- const mandatoryParam = mandatoryParams[mandatoryParamIndex];
179
- let argument = null;
180
- for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
181
- const c = commandArgsHelper.remainingArguments[remainingArgsIndex];
182
- if (yield mandatoryParam.validate(c)) {
183
- argument = c;
184
- break;
185
- }
186
- }
187
- if (argument) {
188
- helpers.remove(commandArgsHelper.remainingArguments, (arg) => arg === argument);
189
- }
190
- else {
191
- this.$errors.failWithHelp("Missing mandatory parameter.");
149
+ async validateMandatoryParams(commandArguments, mandatoryParams) {
150
+ const commandArgsHelper = new CommandArgumentsValidationHelper(true, commandArguments);
151
+ if (mandatoryParams.length > 0) {
152
+ if (mandatoryParams.length > commandArguments.length) {
153
+ const customErrorMessages = _.map(mandatoryParams, (mp) => mp.errorMessage);
154
+ customErrorMessages.splice(0, 0, "You need to provide all the required parameters.");
155
+ this.$errors.failWithHelp(customErrorMessages.join(os_1.EOL));
156
+ }
157
+ for (let mandatoryParamIndex = 0; mandatoryParamIndex < mandatoryParams.length; ++mandatoryParamIndex) {
158
+ const mandatoryParam = mandatoryParams[mandatoryParamIndex];
159
+ let argument = null;
160
+ for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
161
+ const c = commandArgsHelper.remainingArguments[remainingArgsIndex];
162
+ if (await mandatoryParam.validate(c)) {
163
+ argument = c;
164
+ break;
192
165
  }
193
166
  }
167
+ if (argument) {
168
+ helpers.remove(commandArgsHelper.remainingArguments, (arg) => arg === argument);
169
+ }
170
+ else {
171
+ this.$errors.failWithHelp("Missing mandatory parameter.");
172
+ }
194
173
  }
195
- return commandArgsHelper;
196
- });
174
+ }
175
+ return commandArgsHelper;
197
176
  }
198
- validateCommandArguments(command, commandArguments) {
199
- return __awaiter(this, void 0, void 0, function* () {
200
- const mandatoryParams = _.filter(command.allowedParameters, (param) => param.mandatory);
201
- const commandArgsHelper = yield this.validateMandatoryParams(commandArguments, mandatoryParams);
202
- if (!commandArgsHelper.isValid) {
203
- return false;
204
- }
205
- if (!command.allowedParameters || command.allowedParameters.length === 0) {
206
- if (commandArguments.length > 0) {
207
- this.$errors.failWithHelp("This command doesn't accept parameters.");
208
- }
177
+ async validateCommandArguments(command, commandArguments) {
178
+ const mandatoryParams = _.filter(command.allowedParameters, (param) => param.mandatory);
179
+ const commandArgsHelper = await this.validateMandatoryParams(commandArguments, mandatoryParams);
180
+ if (!commandArgsHelper.isValid) {
181
+ return false;
182
+ }
183
+ if (!command.allowedParameters || command.allowedParameters.length === 0) {
184
+ if (commandArguments.length > 0) {
185
+ this.$errors.failWithHelp("This command doesn't accept parameters.");
209
186
  }
210
- else {
211
- const unverifiedAllowedParams = command.allowedParameters.filter((param) => !param.mandatory);
212
- for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
213
- const argument = commandArgsHelper.remainingArguments[remainingArgsIndex];
214
- let parameter = null;
215
- for (let unverifiedIndex = 0; unverifiedIndex < unverifiedAllowedParams.length; ++unverifiedIndex) {
216
- const c = unverifiedAllowedParams[unverifiedIndex];
217
- if (yield c.validate(argument)) {
218
- parameter = c;
219
- break;
220
- }
221
- }
222
- if (parameter) {
223
- const index = unverifiedAllowedParams.indexOf(parameter);
224
- unverifiedAllowedParams.splice(index, 1);
225
- }
226
- else {
227
- this.$errors.failWithHelp(`The parameter ${argument} is not valid for this command.`);
187
+ }
188
+ else {
189
+ const unverifiedAllowedParams = command.allowedParameters.filter((param) => !param.mandatory);
190
+ for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
191
+ const argument = commandArgsHelper.remainingArguments[remainingArgsIndex];
192
+ let parameter = null;
193
+ for (let unverifiedIndex = 0; unverifiedIndex < unverifiedAllowedParams.length; ++unverifiedIndex) {
194
+ const c = unverifiedAllowedParams[unverifiedIndex];
195
+ if (await c.validate(argument)) {
196
+ parameter = c;
197
+ break;
228
198
  }
229
199
  }
200
+ if (parameter) {
201
+ const index = unverifiedAllowedParams.indexOf(parameter);
202
+ unverifiedAllowedParams.splice(index, 1);
203
+ }
204
+ else {
205
+ this.$errors.failWithHelp(`The parameter ${argument} is not valid for this command.`);
206
+ }
230
207
  }
231
- return true;
232
- });
208
+ }
209
+ return true;
233
210
  }
234
211
  tryMatchCommand(commandName) {
235
212
  const allCommands = this.allCommands({ includeDevCommands: false });