nativescript 8.9.0-alpha.3 → 8.9.0-dev.0

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 (342) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -20
  3. package/lib/base-package-manager.js +47 -64
  4. package/lib/bun-package-manager.js +65 -88
  5. package/lib/color.js +2 -2
  6. package/lib/commands/add-platform.js +14 -30
  7. package/lib/commands/apple-login.js +18 -29
  8. package/lib/commands/appstore-list.js +34 -45
  9. package/lib/commands/appstore-upload.js +52 -65
  10. package/lib/commands/build.js +55 -87
  11. package/lib/commands/clean.js +161 -176
  12. package/lib/commands/command-base.js +14 -27
  13. package/lib/commands/config.js +48 -67
  14. package/lib/commands/create-project.js +210 -229
  15. package/lib/commands/debug.js +66 -88
  16. package/lib/commands/deploy.js +28 -44
  17. package/lib/commands/embedding/embed.js +33 -52
  18. package/lib/commands/extensibility/install-extension.js +5 -16
  19. package/lib/commands/extensibility/list-extensions.js +13 -24
  20. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  21. package/lib/commands/fonts.js +30 -41
  22. package/lib/commands/generate-assets.js +13 -28
  23. package/lib/commands/generate-help.js +2 -13
  24. package/lib/commands/generate.js +12 -60
  25. package/lib/commands/info.js +2 -13
  26. package/lib/commands/install.js +34 -49
  27. package/lib/commands/list-platforms.js +14 -25
  28. package/lib/commands/migrate.js +15 -26
  29. package/lib/commands/native-add.js +23 -46
  30. package/lib/commands/platform-clean.js +19 -32
  31. package/lib/commands/plugin/add-plugin.js +12 -25
  32. package/lib/commands/plugin/build-plugin.js +31 -44
  33. package/lib/commands/plugin/create-plugin.js +110 -133
  34. package/lib/commands/plugin/list-plugins.js +22 -33
  35. package/lib/commands/plugin/remove-plugin.js +20 -33
  36. package/lib/commands/plugin/update-plugin.js +20 -33
  37. package/lib/commands/post-install.js +20 -33
  38. package/lib/commands/prepare.js +19 -35
  39. package/lib/commands/preview.js +49 -62
  40. package/lib/commands/remove-platform.js +7 -18
  41. package/lib/commands/resources/resources-update.js +13 -26
  42. package/lib/commands/run.js +55 -76
  43. package/lib/commands/start.js +6 -19
  44. package/lib/commands/test-init.js +123 -134
  45. package/lib/commands/test.js +66 -89
  46. package/lib/commands/typings.js +126 -142
  47. package/lib/commands/update-platform.js +22 -35
  48. package/lib/commands/update.js +30 -43
  49. package/lib/common/child-process.js +53 -72
  50. package/lib/common/codeGeneration/code-entity.js +1 -1
  51. package/lib/common/codeGeneration/code-printer.js +1 -1
  52. package/lib/common/command-params.js +7 -18
  53. package/lib/common/commands/analytics.js +27 -40
  54. package/lib/common/commands/autocompletion.js +39 -56
  55. package/lib/common/commands/device/device-log-stream.js +12 -23
  56. package/lib/common/commands/device/get-file.js +22 -33
  57. package/lib/common/commands/device/list-applications.js +12 -23
  58. package/lib/common/commands/device/list-devices.js +72 -87
  59. package/lib/common/commands/device/list-files.js +23 -34
  60. package/lib/common/commands/device/put-file.js +22 -33
  61. package/lib/common/commands/device/run-application.js +12 -25
  62. package/lib/common/commands/device/stop-application.js +11 -22
  63. package/lib/common/commands/device/uninstall-application.js +6 -17
  64. package/lib/common/commands/generate-messages.js +17 -28
  65. package/lib/common/commands/help.js +20 -33
  66. package/lib/common/commands/package-manager-get.js +6 -17
  67. package/lib/common/commands/package-manager-set.js +9 -20
  68. package/lib/common/commands/post-install.js +2 -13
  69. package/lib/common/commands/preuninstall.js +23 -38
  70. package/lib/common/commands/proxy/proxy-base.js +8 -19
  71. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  72. package/lib/common/commands/proxy/proxy-get.js +3 -14
  73. package/lib/common/commands/proxy/proxy-set.js +87 -100
  74. package/lib/common/constants.js +11 -11
  75. package/lib/common/decorators.js +10 -22
  76. package/lib/common/dispatchers.js +79 -96
  77. package/lib/common/errors.js +89 -104
  78. package/lib/common/file-system.js +108 -130
  79. package/lib/common/header.js +1 -2
  80. package/lib/common/helpers.js +149 -178
  81. package/lib/common/host-info.js +37 -50
  82. package/lib/common/http-client.js +93 -108
  83. package/lib/common/logger/appenders/cli-appender.js +1 -2
  84. package/lib/common/logger/appenders/emit-appender.js +1 -2
  85. package/lib/common/logger/layouts/cli-layout.js +1 -2
  86. package/lib/common/logger/logger.js +4 -4
  87. package/lib/common/mobile/android/android-application-manager.js +121 -142
  88. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  89. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  90. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  91. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  92. package/lib/common/mobile/android/android-device.js +68 -85
  93. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  94. package/lib/common/mobile/android/android-ini-file-parser.js +8 -6
  95. package/lib/common/mobile/android/android-log-filter.js +1 -1
  96. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  97. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  98. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  99. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  100. package/lib/common/mobile/android/logcat-helper.js +108 -127
  101. package/lib/common/mobile/application-manager-base.js +84 -107
  102. package/lib/common/mobile/device-log-provider-base.js +7 -18
  103. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  104. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  105. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  106. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  107. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  108. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  109. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  110. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  111. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  112. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  113. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  114. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  115. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  116. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  117. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  118. package/lib/common/mobile/mobile-core/devices-service.js +386 -436
  119. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  120. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  121. package/lib/common/mobile/mobile-helper.js +15 -26
  122. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  123. package/lib/common/opener.js +2 -2
  124. package/lib/common/prompter.js +90 -105
  125. package/lib/common/queue.js +9 -20
  126. package/lib/common/services/auto-completion-service.js +39 -52
  127. package/lib/common/services/cancellation.js +17 -28
  128. package/lib/common/services/commands-service.js +146 -169
  129. package/lib/common/services/help-service.js +132 -157
  130. package/lib/common/services/hooks-service.js +93 -108
  131. package/lib/common/services/ios-notification-service.js +21 -34
  132. package/lib/common/services/json-file-settings-service.js +52 -71
  133. package/lib/common/services/lock-service.js +35 -52
  134. package/lib/common/services/message-contract-generator.js +35 -46
  135. package/lib/common/services/micro-templating-service.js +4 -15
  136. package/lib/common/services/net-service.js +90 -107
  137. package/lib/common/services/project-files-manager.js +10 -23
  138. package/lib/common/services/proxy-service.js +13 -24
  139. package/lib/common/services/qr.js +13 -24
  140. package/lib/common/services/settings-service.js +1 -1
  141. package/lib/common/services/xcode-select-service.js +20 -35
  142. package/lib/common/utils.js +2 -2
  143. package/lib/common/validators/project-name-validator.js +1 -1
  144. package/lib/common/validators/validation-result.js +1 -1
  145. package/lib/common/verify-node-version.js +2 -3
  146. package/lib/common/yok.js +23 -36
  147. package/lib/config.js +36 -51
  148. package/lib/constants.js +24 -24
  149. package/lib/controllers/build-controller.js +82 -99
  150. package/lib/controllers/debug-controller.js +107 -128
  151. package/lib/controllers/deploy-controller.js +15 -23
  152. package/lib/controllers/migrate-controller.js +722 -795
  153. package/lib/controllers/platform-controller.js +70 -85
  154. package/lib/controllers/prepare-controller.js +232 -261
  155. package/lib/controllers/run-controller.js +397 -411
  156. package/lib/controllers/update-controller-base.js +16 -29
  157. package/lib/controllers/update-controller.js +94 -119
  158. package/lib/data/prepare-data.js +4 -1
  159. package/lib/definitions/ios.d.ts +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  281. package/node_modules/@npmcli/move-file/package.json +0 -47
  282. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  283. package/node_modules/balanced-match/LICENSE.md +0 -21
  284. package/node_modules/balanced-match/README.md +0 -97
  285. package/node_modules/balanced-match/index.js +0 -62
  286. package/node_modules/balanced-match/package.json +0 -48
  287. package/node_modules/concat-map/.travis.yml +0 -4
  288. package/node_modules/concat-map/LICENSE +0 -18
  289. package/node_modules/concat-map/README.markdown +0 -62
  290. package/node_modules/concat-map/example/map.js +0 -6
  291. package/node_modules/concat-map/index.js +0 -13
  292. package/node_modules/concat-map/package.json +0 -43
  293. package/node_modules/concat-map/test/map.js +0 -39
  294. package/node_modules/fs.realpath/LICENSE +0 -43
  295. package/node_modules/fs.realpath/README.md +0 -33
  296. package/node_modules/fs.realpath/index.js +0 -66
  297. package/node_modules/fs.realpath/old.js +0 -303
  298. package/node_modules/fs.realpath/package.json +0 -26
  299. package/node_modules/inflight/LICENSE +0 -15
  300. package/node_modules/inflight/README.md +0 -37
  301. package/node_modules/inflight/inflight.js +0 -54
  302. package/node_modules/inflight/package.json +0 -29
  303. package/node_modules/inherits/LICENSE +0 -16
  304. package/node_modules/inherits/README.md +0 -42
  305. package/node_modules/inherits/inherits.js +0 -9
  306. package/node_modules/inherits/inherits_browser.js +0 -27
  307. package/node_modules/inherits/package.json +0 -29
  308. package/node_modules/once/LICENSE +0 -15
  309. package/node_modules/once/README.md +0 -79
  310. package/node_modules/once/once.js +0 -42
  311. package/node_modules/once/package.json +0 -33
  312. package/node_modules/path-is-absolute/index.js +0 -20
  313. package/node_modules/path-is-absolute/license +0 -21
  314. package/node_modules/path-is-absolute/package.json +0 -43
  315. package/node_modules/path-is-absolute/readme.md +0 -59
  316. package/node_modules/rimraf/LICENSE +0 -15
  317. package/node_modules/rimraf/README.md +0 -101
  318. package/node_modules/rimraf/bin.js +0 -68
  319. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  320. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  321. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  322. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  323. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  324. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  325. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  326. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  327. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  328. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  329. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  330. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  331. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  332. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  333. package/node_modules/rimraf/package.json +0 -32
  334. package/node_modules/rimraf/rimraf.js +0 -360
  335. package/node_modules/stringify-package/LICENSE +0 -13
  336. package/node_modules/stringify-package/README.md +0 -55
  337. package/node_modules/stringify-package/index.js +0 -18
  338. package/node_modules/stringify-package/package.json +0 -38
  339. package/node_modules/wrappy/LICENSE +0 -15
  340. package/node_modules/wrappy/README.md +0 -36
  341. package/node_modules/wrappy/package.json +0 -29
  342. package/node_modules/wrappy/wrappy.js +0 -33
@@ -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 });