nativescript 8.9.0-alpha.2 → 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 (345) 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 +211 -230
  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/CHANGELOG.md +0 -15
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  281. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  282. package/node_modules/@npmcli/move-file/package.json +0 -47
  283. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  284. package/node_modules/balanced-match/LICENSE.md +0 -21
  285. package/node_modules/balanced-match/README.md +0 -97
  286. package/node_modules/balanced-match/index.js +0 -62
  287. package/node_modules/balanced-match/package.json +0 -48
  288. package/node_modules/concat-map/.travis.yml +0 -4
  289. package/node_modules/concat-map/LICENSE +0 -18
  290. package/node_modules/concat-map/README.markdown +0 -62
  291. package/node_modules/concat-map/example/map.js +0 -6
  292. package/node_modules/concat-map/index.js +0 -13
  293. package/node_modules/concat-map/package.json +0 -43
  294. package/node_modules/concat-map/test/map.js +0 -39
  295. package/node_modules/fs.realpath/LICENSE +0 -43
  296. package/node_modules/fs.realpath/README.md +0 -33
  297. package/node_modules/fs.realpath/index.js +0 -66
  298. package/node_modules/fs.realpath/old.js +0 -303
  299. package/node_modules/fs.realpath/package.json +0 -26
  300. package/node_modules/inflight/LICENSE +0 -15
  301. package/node_modules/inflight/README.md +0 -37
  302. package/node_modules/inflight/inflight.js +0 -54
  303. package/node_modules/inflight/package.json +0 -29
  304. package/node_modules/inherits/LICENSE +0 -16
  305. package/node_modules/inherits/README.md +0 -42
  306. package/node_modules/inherits/inherits.js +0 -9
  307. package/node_modules/inherits/inherits_browser.js +0 -27
  308. package/node_modules/inherits/package.json +0 -29
  309. package/node_modules/once/LICENSE +0 -15
  310. package/node_modules/once/README.md +0 -79
  311. package/node_modules/once/once.js +0 -42
  312. package/node_modules/once/package.json +0 -33
  313. package/node_modules/path-is-absolute/index.js +0 -20
  314. package/node_modules/path-is-absolute/license +0 -21
  315. package/node_modules/path-is-absolute/package.json +0 -43
  316. package/node_modules/path-is-absolute/readme.md +0 -59
  317. package/node_modules/rimraf/CHANGELOG.md +0 -65
  318. package/node_modules/rimraf/LICENSE +0 -15
  319. package/node_modules/rimraf/README.md +0 -101
  320. package/node_modules/rimraf/bin.js +0 -68
  321. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  322. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  323. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  324. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  325. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  326. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  327. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  328. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  329. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  330. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  331. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  332. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  333. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  334. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  335. package/node_modules/rimraf/package.json +0 -32
  336. package/node_modules/rimraf/rimraf.js +0 -360
  337. package/node_modules/stringify-package/CHANGELOG.md +0 -16
  338. package/node_modules/stringify-package/LICENSE +0 -13
  339. package/node_modules/stringify-package/README.md +0 -55
  340. package/node_modules/stringify-package/index.js +0 -18
  341. package/node_modules/stringify-package/package.json +0 -38
  342. package/node_modules/wrappy/LICENSE +0 -15
  343. package/node_modules/wrappy/README.md +0 -36
  344. package/node_modules/wrappy/package.json +0 -29
  345. package/node_modules/wrappy/wrappy.js +0 -33
@@ -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.HelpService = void 0;
13
4
  const path = require("path");
@@ -44,148 +35,134 @@ class HelpService {
44
35
  this.pathToHtmlPages = this.$staticConfig.HTML_PAGES_DIR;
45
36
  this.pathToManPages = this.$staticConfig.MAN_PAGES_DIR;
46
37
  }
47
- openHelpForCommandInBrowser(commandData) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const { commandName } = commandData;
50
- const htmlPage = (yield this.convertCommandNameToFileName(commandData)) +
51
- HelpService.HTML_FILE_EXTENSION;
52
- this.$logger.trace("Opening help for command '%s'. FileName is '%s'.", commandName, htmlPage);
53
- this.$fs.ensureDirectoryExists(this.pathToHtmlPages);
38
+ async openHelpForCommandInBrowser(commandData) {
39
+ const { commandName } = commandData;
40
+ const htmlPage = (await this.convertCommandNameToFileName(commandData)) +
41
+ HelpService.HTML_FILE_EXTENSION;
42
+ this.$logger.trace("Opening help for command '%s'. FileName is '%s'.", commandName, htmlPage);
43
+ this.$fs.ensureDirectoryExists(this.pathToHtmlPages);
44
+ if (!this.tryOpeningSelectedPage(htmlPage)) {
45
+ this.$logger.trace("Required HTML file '%s' is missing. Let's try generating HTML files and see if we'll find it.", htmlPage);
46
+ await this.generateHtmlPages();
54
47
  if (!this.tryOpeningSelectedPage(htmlPage)) {
55
- this.$logger.trace("Required HTML file '%s' is missing. Let's try generating HTML files and see if we'll find it.", htmlPage);
56
- yield this.generateHtmlPages();
57
- if (!this.tryOpeningSelectedPage(htmlPage)) {
58
- this.$errors.fail("Unable to find help for '%s'", commandName);
59
- }
60
- }
61
- });
62
- }
63
- generateHtmlPages() {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const mdFiles = this.$fs.enumerateFilesInDirectorySync(this.pathToManPages);
66
- const basicHtmlPage = this.$fs.readText(this.pathToBasicPage);
67
- yield Promise.all(_.map(mdFiles, (markdownFile) => {
68
- const htmlPageGenerationData = {
69
- basicHtmlPage,
70
- pathToMdFile: markdownFile,
71
- pathToMdPages: this.pathToManPages,
72
- pathToHtmlPages: this.pathToHtmlPages,
73
- };
74
- return this.createHtmlPage(htmlPageGenerationData);
75
- }));
76
- const installedExtensionsData = this.$extensibilityService.getInstalledExtensionsData();
77
- const basicHtmlPageForExtensions = this.$fs.readText(this.pathToBasicPageForExtensions);
78
- for (const extensionData of installedExtensionsData) {
79
- const docsDir = extensionData.docs;
80
- if (docsDir) {
81
- this.$logger.trace(`Start generation of html help content for extension ${extensionData.extensionName}`);
82
- if (!this.$fs.exists(docsDir)) {
83
- this.$logger.warn(`Unable to generate html help pages for extension ${extensionData.extensionName} as the docs directory ${docsDir} does not exist.`);
84
- continue;
85
- }
86
- const htmlDirFullPath = HelpService.getHtmlDirFullPath(docsDir);
87
- this.$fs.ensureDirectoryExists(htmlDirFullPath);
88
- const extensionMdFiles = this.$fs.enumerateFilesInDirectorySync(docsDir);
89
- try {
90
- yield Promise.all(_.map(extensionMdFiles, (markdownFile) => {
91
- const htmlPageGenerationData = {
92
- basicHtmlPage: basicHtmlPageForExtensions,
93
- pathToMdFile: markdownFile,
94
- pathToMdPages: docsDir,
95
- pathToHtmlPages: htmlDirFullPath,
96
- extensionName: extensionData.extensionName,
97
- };
98
- return this.createHtmlPage(htmlPageGenerationData);
99
- }));
100
- }
101
- catch (err) {
102
- this.$logger.warn(`Unable to generate html help for extension ${extensionData.extensionName}. Error is: ${err.message}`);
103
- }
104
- this.$logger.trace(`Finished generation of html help content for extension ${extensionData.extensionName}`);
105
- }
106
- }
107
- this.$logger.trace("Finished generating HTML files.");
108
- });
109
- }
110
- showCommandLineHelp(commandData) {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- const help = yield this.getCommandLineHelpForCommand(commandData);
113
- this.$logger.printMarkdown(help);
114
- });
115
- }
116
- getCommandLineHelpForCommand(commandData) {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- const helpText = yield this.readMdFileForCommand(commandData);
119
- const commandLineHelp = (yield this.$microTemplateService.parseContent(helpText, { isHtml: false }))
120
- .replace(/ /g, " ")
121
- .replace(HelpService.MARKDOWN_LINK_REGEX, "$1")
122
- .replace(HelpService.SPAN_REGEX, (matchingSubstring, textBeforeSpan, textInsideSpan, index, fullString) => {
123
- return textBeforeSpan + textInsideSpan.replace(this.newLineRegex, "");
124
- })
125
- .replace(HelpService.NEW_LINE_REGEX, os_1.EOL);
126
- return commandLineHelp;
127
- });
128
- }
129
- createHtmlPage(htmlPageGenerationData) {
130
- return __awaiter(this, void 0, void 0, function* () {
131
- const { basicHtmlPage, pathToMdFile, pathToMdPages, pathToHtmlPages, extensionName, } = htmlPageGenerationData;
132
- const mdFileName = path.basename(pathToMdFile);
133
- const htmlFileName = mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, HelpService.HTML_FILE_EXTENSION);
134
- this.$logger.trace("Generating '%s' help topic.", htmlFileName);
135
- const helpText = this.$fs.readText(pathToMdFile);
136
- const outputText = yield this.$microTemplateService.parseContent(helpText, {
137
- isHtml: true,
138
- });
139
- const htmlText = (0, marked_1.marked)(outputText);
140
- const filePath = pathToMdFile
141
- .replace(path.basename(pathToMdPages), path.basename(pathToHtmlPages))
142
- .replace(mdFileName, htmlFileName);
143
- this.$logger.trace("HTML file path for '%s' man page is: '%s'.", mdFileName, filePath);
144
- let outputHtml = basicHtmlPage
145
- .replace(HelpService.MAN_PAGE_NAME_REGEX, mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, ""))
146
- .replace(HelpService.HTML_COMMAND_HELP_REGEX, htmlText)
147
- .replace(HelpService.RELATIVE_PATH_TO_STYLES_CSS_REGEX, path.relative(path.dirname(filePath), this.pathToStylesCss))
148
- .replace(HelpService.RELATIVE_PATH_TO_IMAGES_REGEX, path.relative(path.dirname(filePath), this.pathToImages))
149
- .replace(HelpService.RELATIVE_PATH_TO_INDEX_REGEX, path.relative(path.dirname(filePath), this.pathToIndexHtml));
150
- if (extensionName) {
151
- outputHtml = outputHtml.replace(HelpService.EXTENSION_NAME_REGEX, extensionName);
48
+ this.$errors.fail("Unable to find help for '%s'", commandName);
152
49
  }
153
- this.$fs.writeFile(filePath, outputHtml);
154
- this.$logger.trace("Finished writing file '%s'.", filePath);
155
- });
156
- }
157
- convertCommandNameToFileName(commandData) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- let { commandName } = commandData;
160
- const defaultCommandMatch = commandName && commandName.match(/([\w-]+?)\|\*/);
161
- if (defaultCommandMatch) {
162
- this.$logger.trace("Default command found. Replace current command name '%s' with '%s'.", commandName, defaultCommandMatch[1]);
163
- commandName = defaultCommandMatch[1];
164
- }
165
- const availableCommands = this.$injector
166
- .getRegisteredCommandsNames(true)
167
- .sort();
168
- this.$logger.trace("List of registered commands: %s", availableCommands.join(", "));
169
- if (commandName && !_.includes(availableCommands, commandName)) {
170
- yield this.throwMissingCommandError(commandData);
171
- }
172
- return (commandName && commandName.replace(/\|/g, "-")) || "start";
173
- });
50
+ }
174
51
  }
175
- throwMissingCommandError(commandData) {
176
- return __awaiter(this, void 0, void 0, function* () {
177
- const commandName = commandData.commandName;
178
- const commandInfo = {
179
- inputStrings: [commandName, ...commandData.commandArguments],
180
- commandDelimiter: "|",
181
- defaultCommandDelimiter: "|*",
52
+ async generateHtmlPages() {
53
+ const mdFiles = this.$fs.enumerateFilesInDirectorySync(this.pathToManPages);
54
+ const basicHtmlPage = this.$fs.readText(this.pathToBasicPage);
55
+ await Promise.all(_.map(mdFiles, (markdownFile) => {
56
+ const htmlPageGenerationData = {
57
+ basicHtmlPage,
58
+ pathToMdFile: markdownFile,
59
+ pathToMdPages: this.pathToManPages,
60
+ pathToHtmlPages: this.pathToHtmlPages,
182
61
  };
183
- const extensionData = yield this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
184
- if (extensionData) {
185
- this.$errors.fail(extensionData.installationMessage);
62
+ return this.createHtmlPage(htmlPageGenerationData);
63
+ }));
64
+ const installedExtensionsData = this.$extensibilityService.getInstalledExtensionsData();
65
+ const basicHtmlPageForExtensions = this.$fs.readText(this.pathToBasicPageForExtensions);
66
+ for (const extensionData of installedExtensionsData) {
67
+ const docsDir = extensionData.docs;
68
+ if (docsDir) {
69
+ this.$logger.trace(`Start generation of html help content for extension ${extensionData.extensionName}`);
70
+ if (!this.$fs.exists(docsDir)) {
71
+ this.$logger.warn(`Unable to generate html help pages for extension ${extensionData.extensionName} as the docs directory ${docsDir} does not exist.`);
72
+ continue;
73
+ }
74
+ const htmlDirFullPath = HelpService.getHtmlDirFullPath(docsDir);
75
+ this.$fs.ensureDirectoryExists(htmlDirFullPath);
76
+ const extensionMdFiles = this.$fs.enumerateFilesInDirectorySync(docsDir);
77
+ try {
78
+ await Promise.all(_.map(extensionMdFiles, (markdownFile) => {
79
+ const htmlPageGenerationData = {
80
+ basicHtmlPage: basicHtmlPageForExtensions,
81
+ pathToMdFile: markdownFile,
82
+ pathToMdPages: docsDir,
83
+ pathToHtmlPages: htmlDirFullPath,
84
+ extensionName: extensionData.extensionName,
85
+ };
86
+ return this.createHtmlPage(htmlPageGenerationData);
87
+ }));
88
+ }
89
+ catch (err) {
90
+ this.$logger.warn(`Unable to generate html help for extension ${extensionData.extensionName}. Error is: ${err.message}`);
91
+ }
92
+ this.$logger.trace(`Finished generation of html help content for extension ${extensionData.extensionName}`);
186
93
  }
187
- this.$errors.fail("Unknown command '%s'. Try '$ %s help' for a full list of supported commands.", commandName, this.$staticConfig.CLIENT_NAME.toLowerCase());
94
+ }
95
+ this.$logger.trace("Finished generating HTML files.");
96
+ }
97
+ async showCommandLineHelp(commandData) {
98
+ const help = await this.getCommandLineHelpForCommand(commandData);
99
+ this.$logger.printMarkdown(help);
100
+ }
101
+ async getCommandLineHelpForCommand(commandData) {
102
+ const helpText = await this.readMdFileForCommand(commandData);
103
+ const commandLineHelp = (await this.$microTemplateService.parseContent(helpText, { isHtml: false }))
104
+ .replace(/ /g, " ")
105
+ .replace(HelpService.MARKDOWN_LINK_REGEX, "$1")
106
+ .replace(HelpService.SPAN_REGEX, (matchingSubstring, textBeforeSpan, textInsideSpan, index, fullString) => {
107
+ return textBeforeSpan + textInsideSpan.replace(this.newLineRegex, "");
108
+ })
109
+ .replace(HelpService.NEW_LINE_REGEX, os_1.EOL);
110
+ return commandLineHelp;
111
+ }
112
+ async createHtmlPage(htmlPageGenerationData) {
113
+ const { basicHtmlPage, pathToMdFile, pathToMdPages, pathToHtmlPages, extensionName, } = htmlPageGenerationData;
114
+ const mdFileName = path.basename(pathToMdFile);
115
+ const htmlFileName = mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, HelpService.HTML_FILE_EXTENSION);
116
+ this.$logger.trace("Generating '%s' help topic.", htmlFileName);
117
+ const helpText = this.$fs.readText(pathToMdFile);
118
+ const outputText = await this.$microTemplateService.parseContent(helpText, {
119
+ isHtml: true,
188
120
  });
121
+ const htmlText = await (0, marked_1.marked)(outputText);
122
+ const filePath = pathToMdFile
123
+ .replace(path.basename(pathToMdPages), path.basename(pathToHtmlPages))
124
+ .replace(mdFileName, htmlFileName);
125
+ this.$logger.trace("HTML file path for '%s' man page is: '%s'.", mdFileName, filePath);
126
+ let outputHtml = basicHtmlPage
127
+ .replace(HelpService.MAN_PAGE_NAME_REGEX, mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, ""))
128
+ .replace(HelpService.HTML_COMMAND_HELP_REGEX, htmlText)
129
+ .replace(HelpService.RELATIVE_PATH_TO_STYLES_CSS_REGEX, path.relative(path.dirname(filePath), this.pathToStylesCss))
130
+ .replace(HelpService.RELATIVE_PATH_TO_IMAGES_REGEX, path.relative(path.dirname(filePath), this.pathToImages))
131
+ .replace(HelpService.RELATIVE_PATH_TO_INDEX_REGEX, path.relative(path.dirname(filePath), this.pathToIndexHtml));
132
+ if (extensionName) {
133
+ outputHtml = outputHtml.replace(HelpService.EXTENSION_NAME_REGEX, extensionName);
134
+ }
135
+ this.$fs.writeFile(filePath, outputHtml);
136
+ this.$logger.trace("Finished writing file '%s'.", filePath);
137
+ }
138
+ async convertCommandNameToFileName(commandData) {
139
+ let { commandName } = commandData;
140
+ const defaultCommandMatch = commandName && commandName.match(/([\w-]+?)\|\*/);
141
+ if (defaultCommandMatch) {
142
+ this.$logger.trace("Default command found. Replace current command name '%s' with '%s'.", commandName, defaultCommandMatch[1]);
143
+ commandName = defaultCommandMatch[1];
144
+ }
145
+ const availableCommands = this.$injector
146
+ .getRegisteredCommandsNames(true)
147
+ .sort();
148
+ this.$logger.trace("List of registered commands: %s", availableCommands.join(", "));
149
+ if (commandName && !_.includes(availableCommands, commandName)) {
150
+ await this.throwMissingCommandError(commandData);
151
+ }
152
+ return (commandName && commandName.replace(/\|/g, "-")) || "start";
153
+ }
154
+ async throwMissingCommandError(commandData) {
155
+ const commandName = commandData.commandName;
156
+ const commandInfo = {
157
+ inputStrings: [commandName, ...commandData.commandArguments],
158
+ commandDelimiter: "|",
159
+ defaultCommandDelimiter: "|*",
160
+ };
161
+ const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
162
+ if (extensionData) {
163
+ this.$errors.fail(extensionData.installationMessage);
164
+ }
165
+ this.$errors.fail("Unknown command '%s'. Try '$ %s help' for a full list of supported commands.", commandName, this.$staticConfig.CLIENT_NAME.toLowerCase());
189
166
  }
190
167
  static getHtmlDirFullPath(docsDir) {
191
168
  return path.join(path.dirname(docsDir), "html");
@@ -224,19 +201,18 @@ class HelpService {
224
201
  this.$logger.trace("Unable to find file: '%s'", htmlPage);
225
202
  return false;
226
203
  }
227
- readMdFileForCommand(commandData) {
228
- return __awaiter(this, void 0, void 0, function* () {
229
- const mdFileName = (yield this.convertCommandNameToFileName(commandData)) +
230
- HelpService.MARKDOWN_FILE_EXTENSION;
231
- this.$logger.trace("Reading help for command '%s'. FileName is '%s'.", commandData.commandName, mdFileName);
232
- const markdownFile = this.getHelpFile(mdFileName, this.pathToManPages);
233
- if (markdownFile) {
234
- return this.$fs.readText(markdownFile);
235
- }
236
- yield this.throwMissingCommandError(commandData);
237
- });
204
+ async readMdFileForCommand(commandData) {
205
+ const mdFileName = (await this.convertCommandNameToFileName(commandData)) +
206
+ HelpService.MARKDOWN_FILE_EXTENSION;
207
+ this.$logger.trace("Reading help for command '%s'. FileName is '%s'.", commandData.commandName, mdFileName);
208
+ const markdownFile = this.getHelpFile(mdFileName, this.pathToManPages);
209
+ if (markdownFile) {
210
+ return this.$fs.readText(markdownFile);
211
+ }
212
+ await this.throwMissingCommandError(commandData);
238
213
  }
239
214
  }
215
+ exports.HelpService = HelpService;
240
216
  HelpService.MARKDOWN_FILE_EXTENSION = ".md";
241
217
  HelpService.HTML_FILE_EXTENSION = ".html";
242
218
  HelpService.MAN_PAGE_NAME_REGEX = /@MAN_PAGE_NAME@/g;
@@ -248,5 +224,4 @@ HelpService.EXTENSION_NAME_REGEX = /@EXTENSION_NAME@/g;
248
224
  HelpService.MARKDOWN_LINK_REGEX = /\[([\w \-\`\<\>\*\:\\]+?)\]\([\s\S]+?\)/g;
249
225
  HelpService.SPAN_REGEX = /([\s\S]*?)(?:\r?\n)?<span.*?>([\s\S]*?)<\/span>(?:\r?\n)*/g;
250
226
  HelpService.NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g;
251
- exports.HelpService = HelpService;
252
227
  yok_1.injector.register("helpService", HelpService);
@@ -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.HooksService = void 0;
19
10
  const path = require("path");
@@ -73,117 +64,111 @@ class HooksService {
73
64
  const traceMessage = `AfterHookName for command ${commandName} is ${afterHookName}`;
74
65
  return this.executeHooks(afterHookName, traceMessage, hookArguments);
75
66
  }
76
- executeHooks(hookName, traceMessage, hookArguments) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- if (this.$config.DISABLE_HOOKS || !this.$options.hooks) {
79
- return;
67
+ async executeHooks(hookName, traceMessage, hookArguments) {
68
+ if (this.$config.DISABLE_HOOKS || !this.$options.hooks) {
69
+ return;
70
+ }
71
+ const hookArgs = hookArguments && hookArguments[this.hookArgsName];
72
+ let projectDir = hookArgs && hookArgs.projectDir;
73
+ if (!projectDir && hookArgs) {
74
+ const candidate = (0, helpers_1.getValueFromNestedObject)(hookArgs, "projectDir");
75
+ projectDir = candidate && candidate.projectDir;
76
+ }
77
+ this.$logger.trace(`Project dir from hooksArgs is: ${projectDir}.`);
78
+ this.initialize(projectDir);
79
+ this.$logger.trace(traceMessage);
80
+ const results = [];
81
+ try {
82
+ for (const hooksDirectory of this.hooksDirectories) {
83
+ results.push(await this.executeHooksInDirectory(hooksDirectory, hookName, hookArguments));
80
84
  }
81
- const hookArgs = hookArguments && hookArguments[this.hookArgsName];
82
- let projectDir = hookArgs && hookArgs.projectDir;
83
- if (!projectDir && hookArgs) {
84
- const candidate = (0, helpers_1.getValueFromNestedObject)(hookArgs, "projectDir");
85
- projectDir = candidate && candidate.projectDir;
85
+ const customHooks = this.getCustomHooksByName(hookName);
86
+ for (const hook of customHooks) {
87
+ results.push(await this.executeHook(this.$projectHelper.projectDir, hookName, hook, hookArguments));
86
88
  }
87
- this.$logger.trace(`Project dir from hooksArgs is: ${projectDir}.`);
88
- this.initialize(projectDir);
89
- this.$logger.trace(traceMessage);
90
- const results = [];
91
- try {
92
- for (const hooksDirectory of this.hooksDirectories) {
93
- results.push(yield this.executeHooksInDirectory(hooksDirectory, hookName, hookArguments));
94
- }
95
- const customHooks = this.getCustomHooksByName(hookName);
96
- for (const hook of customHooks) {
97
- results.push(yield this.executeHook(this.$projectHelper.projectDir, hookName, hook, hookArguments));
98
- }
89
+ }
90
+ catch (err) {
91
+ this.$logger.trace(`Failed during hook execution ${hookName}.`);
92
+ this.$errors.fail(err.message || err);
93
+ }
94
+ return _.flatten(results);
95
+ }
96
+ async executeHook(directoryPath, hookName, hook, hookArguments) {
97
+ hookArguments = hookArguments || {};
98
+ let result;
99
+ const relativePath = path.relative(directoryPath, hook.fullPath);
100
+ const trackId = relativePath.replace(new RegExp("\\" + path.sep, "g"), constants_1.AnalyticsEventLabelDelimiter);
101
+ let command = this.getSheBangInterpreter(hook);
102
+ let inProc = false;
103
+ if (!command) {
104
+ command = hook.fullPath;
105
+ if (path.extname(hook.fullPath).toLowerCase() === ".js") {
106
+ command = process.argv[0];
107
+ inProc = this.shouldExecuteInProcess(this.$fs.readText(hook.fullPath));
99
108
  }
100
- catch (err) {
101
- this.$logger.trace(`Failed during hook execution ${hookName}.`);
102
- this.$errors.fail(err.message || err);
109
+ }
110
+ const startTime = this.$performanceService.now();
111
+ if (inProc) {
112
+ this.$logger.trace("Executing %s hook at location %s in-process", hookName, hook.fullPath);
113
+ const hookEntryPoint = require(hook.fullPath);
114
+ this.$logger.trace(`Validating ${hookName} arguments.`);
115
+ const invalidArguments = this.validateHookArguments(hookEntryPoint, hook.fullPath);
116
+ if (invalidArguments.length) {
117
+ this.$logger.warn(`${hook.fullPath} will NOT be executed because it has invalid arguments - ${color_1.color.grey(invalidArguments.join(", "))}.`);
118
+ return;
103
119
  }
104
- return _.flatten(results);
105
- });
106
- }
107
- executeHook(directoryPath, hookName, hook, hookArguments) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- hookArguments = hookArguments || {};
110
- let result;
111
- const relativePath = path.relative(directoryPath, hook.fullPath);
112
- const trackId = relativePath.replace(new RegExp("\\" + path.sep, "g"), constants_1.AnalyticsEventLabelDelimiter);
113
- let command = this.getSheBangInterpreter(hook);
114
- let inProc = false;
115
- if (!command) {
116
- command = hook.fullPath;
117
- if (path.extname(hook.fullPath).toLowerCase() === ".js") {
118
- command = process.argv[0];
119
- inProc = this.shouldExecuteInProcess(this.$fs.readText(hook.fullPath));
120
- }
120
+ const projectDataHookArg = hookArguments["hookArgs"] && hookArguments["hookArgs"]["projectData"];
121
+ if (projectDataHookArg) {
122
+ hookArguments["projectData"] = hookArguments["$projectData"] = projectDataHookArg;
121
123
  }
122
- const startTime = this.$performanceService.now();
123
- if (inProc) {
124
- this.$logger.trace("Executing %s hook at location %s in-process", hookName, hook.fullPath);
125
- const hookEntryPoint = require(hook.fullPath);
126
- this.$logger.trace(`Validating ${hookName} arguments.`);
127
- const invalidArguments = this.validateHookArguments(hookEntryPoint, hook.fullPath);
128
- if (invalidArguments.length) {
129
- this.$logger.warn(`${hook.fullPath} will NOT be executed because it has invalid arguments - ${color_1.color.grey(invalidArguments.join(", "))}.`);
130
- return;
124
+ const maybePromise = this.$injector.resolve(hookEntryPoint, hookArguments);
125
+ if (maybePromise) {
126
+ this.$logger.trace("Hook promises to signal completion");
127
+ try {
128
+ result = await maybePromise;
131
129
  }
132
- const projectDataHookArg = hookArguments["hookArgs"] && hookArguments["hookArgs"]["projectData"];
133
- if (projectDataHookArg) {
134
- hookArguments["projectData"] = hookArguments["$projectData"] = projectDataHookArg;
135
- }
136
- const maybePromise = this.$injector.resolve(hookEntryPoint, hookArguments);
137
- if (maybePromise) {
138
- this.$logger.trace("Hook promises to signal completion");
139
- try {
140
- result = yield maybePromise;
130
+ catch (err) {
131
+ if (err &&
132
+ _.isBoolean(err.stopExecution) &&
133
+ err.errorAsWarning === true) {
134
+ this.$logger.warn(err.message || err);
141
135
  }
142
- catch (err) {
143
- if (err &&
144
- _.isBoolean(err.stopExecution) &&
145
- err.errorAsWarning === true) {
146
- this.$logger.warn(err.message || err);
147
- }
148
- else {
149
- this.$logger.error(err);
150
- throw err || new Error(`Failed to execute hook: ${hook.fullPath}.`);
151
- }
136
+ else {
137
+ this.$logger.error(err);
138
+ throw err || new Error(`Failed to execute hook: ${hook.fullPath}.`);
152
139
  }
153
- this.$logger.trace("Hook completed");
154
140
  }
141
+ this.$logger.trace("Hook completed");
155
142
  }
156
- else {
157
- const environment = this.prepareEnvironment(hook.fullPath);
158
- this.$logger.trace("Executing %s hook at location %s with environment ", hookName, hook.fullPath, environment);
159
- const output = yield this.$childProcess.spawnFromEvent(command, [hook.fullPath], "close", environment, { throwError: false });
160
- result = output;
161
- if (output.exitCode !== 0) {
162
- throw new Error(output.stdout + output.stderr);
163
- }
164
- this.$logger.trace("Finished executing %s hook at location %s with environment ", hookName, hook.fullPath, environment);
143
+ }
144
+ else {
145
+ const environment = this.prepareEnvironment(hook.fullPath);
146
+ this.$logger.trace("Executing %s hook at location %s with environment ", hookName, hook.fullPath, environment);
147
+ const output = await this.$childProcess.spawnFromEvent(command, [hook.fullPath], "close", environment, { throwError: false });
148
+ result = output;
149
+ if (output.exitCode !== 0) {
150
+ throw new Error(output.stdout + output.stderr);
165
151
  }
166
- const endTime = this.$performanceService.now();
167
- this.$performanceService.processExecutionData(trackId, startTime, endTime, [
168
- hookArguments,
169
- ]);
170
- return result;
171
- });
152
+ this.$logger.trace("Finished executing %s hook at location %s with environment ", hookName, hook.fullPath, environment);
153
+ }
154
+ const endTime = this.$performanceService.now();
155
+ this.$performanceService.processExecutionData(trackId, startTime, endTime, [
156
+ hookArguments,
157
+ ]);
158
+ return result;
172
159
  }
173
- executeHooksInDirectory(directoryPath, hookName, hookArguments) {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- hookArguments = hookArguments || {};
176
- const results = [];
177
- const hooks = this.getHooksByName(directoryPath, hookName);
178
- for (let i = 0; i < hooks.length; ++i) {
179
- const hook = hooks[i];
180
- const result = yield this.executeHook(directoryPath, hookName, hook, hookArguments);
181
- if (result) {
182
- results.push(result);
183
- }
160
+ async executeHooksInDirectory(directoryPath, hookName, hookArguments) {
161
+ hookArguments = hookArguments || {};
162
+ const results = [];
163
+ const hooks = this.getHooksByName(directoryPath, hookName);
164
+ for (let i = 0; i < hooks.length; ++i) {
165
+ const hook = hooks[i];
166
+ const result = await this.executeHook(directoryPath, hookName, hook, hookArguments);
167
+ if (result) {
168
+ results.push(result);
184
169
  }
185
- return results;
186
- });
170
+ }
171
+ return results;
187
172
  }
188
173
  getCustomHooksByName(hookName) {
189
174
  const hooks = [];
@@ -306,6 +291,7 @@ class HooksService {
306
291
  return invalidArguments;
307
292
  }
308
293
  }
294
+ exports.HooksService = HooksService;
309
295
  HooksService.HOOKS_DIRECTORY_NAME = "hooks";
310
296
  __decorate([
311
297
  (0, decorators_1.memoize)({
@@ -314,5 +300,4 @@ __decorate([
314
300
  },
315
301
  })
316
302
  ], HooksService.prototype, "initialize", null);
317
- exports.HooksService = HooksService;
318
303
  yok_1.injector.register("hooksService", HooksService);
@@ -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.IOSNotificationService = void 0;
13
4
  const constants = require("../constants");
@@ -17,32 +8,28 @@ class IOSNotificationService {
17
8
  constructor($iosDeviceOperations) {
18
9
  this.$iosDeviceOperations = $iosDeviceOperations;
19
10
  }
20
- awaitNotification(deviceIdentifier, socket, timeout) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const notificationResponse = yield this.$iosDeviceOperations.awaitNotificationResponse([
23
- {
24
- deviceId: deviceIdentifier,
25
- socket: socket,
26
- timeout: timeout,
27
- responseCommandType: constants.IOS_RELAY_NOTIFICATION_COMMAND_TYPE,
28
- responsePropertyName: "Name",
29
- },
30
- ]);
31
- return _.first(notificationResponse[deviceIdentifier]).response;
32
- });
11
+ async awaitNotification(deviceIdentifier, socket, timeout) {
12
+ const notificationResponse = await this.$iosDeviceOperations.awaitNotificationResponse([
13
+ {
14
+ deviceId: deviceIdentifier,
15
+ socket: socket,
16
+ timeout: timeout,
17
+ responseCommandType: constants.IOS_RELAY_NOTIFICATION_COMMAND_TYPE,
18
+ responsePropertyName: "Name",
19
+ },
20
+ ]);
21
+ return _.first(notificationResponse[deviceIdentifier]).response;
33
22
  }
34
- postNotification(deviceIdentifier, notification, commandType) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- commandType = commandType || constants.IOS_POST_NOTIFICATION_COMMAND_TYPE;
37
- const response = yield this.$iosDeviceOperations.postNotification([
38
- {
39
- deviceId: deviceIdentifier,
40
- commandType: commandType,
41
- notificationName: notification,
42
- },
43
- ]);
44
- return +_.first(response[deviceIdentifier]).response;
45
- });
23
+ async postNotification(deviceIdentifier, notification, commandType) {
24
+ commandType = commandType || constants.IOS_POST_NOTIFICATION_COMMAND_TYPE;
25
+ const response = await this.$iosDeviceOperations.postNotification([
26
+ {
27
+ deviceId: deviceIdentifier,
28
+ commandType: commandType,
29
+ notificationName: notification,
30
+ },
31
+ ]);
32
+ return +_.first(response[deviceIdentifier]).response;
46
33
  }
47
34
  }
48
35
  exports.IOSNotificationService = IOSNotificationService;