nativescript 8.9.0-dev.2 → 8.9.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -32
  3. package/lib/base-package-manager.js +47 -71
  4. package/lib/bootstrap.js +1 -5
  5. package/lib/bun-package-manager.js +65 -104
  6. package/lib/color.js +2 -5
  7. package/lib/commands/add-platform.js +14 -31
  8. package/lib/commands/apple-login.js +18 -30
  9. package/lib/commands/appstore-list.js +34 -46
  10. package/lib/commands/appstore-upload.js +52 -68
  11. package/lib/commands/build.js +57 -90
  12. package/lib/commands/clean.js +161 -197
  13. package/lib/commands/command-base.js +14 -28
  14. package/lib/commands/config.js +48 -71
  15. package/lib/commands/create-project.js +210 -235
  16. package/lib/commands/debug.js +66 -93
  17. package/lib/commands/deploy.js +30 -47
  18. package/lib/commands/embedding/embed.js +33 -59
  19. package/lib/commands/extensibility/install-extension.js +5 -17
  20. package/lib/commands/extensibility/list-extensions.js +13 -25
  21. package/lib/commands/extensibility/uninstall-extension.js +4 -16
  22. package/lib/commands/fonts.js +30 -42
  23. package/lib/commands/generate-assets.js +13 -29
  24. package/lib/commands/generate-help.js +2 -14
  25. package/lib/commands/generate.js +12 -70
  26. package/lib/commands/info.js +2 -14
  27. package/lib/commands/install.js +34 -50
  28. package/lib/commands/list-platforms.js +14 -26
  29. package/lib/commands/migrate.js +15 -27
  30. package/lib/commands/native-add.js +23 -51
  31. package/lib/commands/platform-clean.js +19 -33
  32. package/lib/commands/plugin/add-plugin.js +12 -26
  33. package/lib/commands/plugin/build-plugin.js +31 -45
  34. package/lib/commands/plugin/create-plugin.js +110 -138
  35. package/lib/commands/plugin/list-plugins.js +22 -34
  36. package/lib/commands/plugin/remove-plugin.js +20 -35
  37. package/lib/commands/plugin/update-plugin.js +20 -34
  38. package/lib/commands/post-install.js +20 -39
  39. package/lib/commands/prepare.js +22 -39
  40. package/lib/commands/preview.js +49 -64
  41. package/lib/commands/remove-platform.js +7 -19
  42. package/lib/commands/resources/resources-update.js +13 -28
  43. package/lib/commands/run.js +55 -77
  44. package/lib/commands/setup.js +0 -1
  45. package/lib/commands/start.js +6 -20
  46. package/lib/commands/test-init.js +123 -138
  47. package/lib/commands/test.js +67 -97
  48. package/lib/commands/typings.js +126 -143
  49. package/lib/commands/update-platform.js +22 -40
  50. package/lib/commands/update.js +30 -45
  51. package/lib/commands/widget.js +390 -352
  52. package/lib/common/bootstrap.js +0 -1
  53. package/lib/common/child-process.js +53 -75
  54. package/lib/common/codeGeneration/code-entity.js +1 -2
  55. package/lib/common/codeGeneration/code-printer.js +1 -2
  56. package/lib/common/command-params.js +7 -19
  57. package/lib/common/commands/analytics.js +27 -43
  58. package/lib/common/commands/autocompletion.js +39 -59
  59. package/lib/common/commands/device/device-log-stream.js +12 -24
  60. package/lib/common/commands/device/get-file.js +22 -35
  61. package/lib/common/commands/device/list-applications.js +12 -24
  62. package/lib/common/commands/device/list-devices.js +72 -90
  63. package/lib/common/commands/device/list-files.js +23 -36
  64. package/lib/common/commands/device/put-file.js +22 -35
  65. package/lib/common/commands/device/run-application.js +12 -26
  66. package/lib/common/commands/device/stop-application.js +11 -23
  67. package/lib/common/commands/device/uninstall-application.js +6 -18
  68. package/lib/common/commands/doctor.js +2 -3
  69. package/lib/common/commands/generate-messages.js +17 -29
  70. package/lib/common/commands/help.js +20 -34
  71. package/lib/common/commands/package-manager-get.js +6 -18
  72. package/lib/common/commands/package-manager-set.js +9 -21
  73. package/lib/common/commands/post-install.js +2 -14
  74. package/lib/common/commands/preuninstall.js +24 -48
  75. package/lib/common/commands/proxy/proxy-base.js +8 -23
  76. package/lib/common/commands/proxy/proxy-clear.js +4 -16
  77. package/lib/common/commands/proxy/proxy-get.js +3 -15
  78. package/lib/common/commands/proxy/proxy-set.js +87 -101
  79. package/lib/common/common-lib.js +0 -1
  80. package/lib/common/constants.js +11 -22
  81. package/lib/common/decorators.js +10 -70
  82. package/lib/common/dispatchers.js +80 -106
  83. package/lib/common/errors.js +91 -116
  84. package/lib/common/file-system.js +108 -141
  85. package/lib/common/header.js +1 -5
  86. package/lib/common/helpers.js +152 -267
  87. package/lib/common/host-info.js +37 -54
  88. package/lib/common/http-client.js +93 -128
  89. package/lib/common/logger/appenders/cli-appender.js +1 -6
  90. package/lib/common/logger/appenders/emit-appender.js +1 -6
  91. package/lib/common/logger/layouts/cli-layout.js +1 -3
  92. package/lib/common/logger/logger.js +4 -9
  93. package/lib/common/messages/messages.js +0 -6
  94. package/lib/common/mobile/android/android-application-manager.js +122 -162
  95. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -2
  96. package/lib/common/mobile/android/android-debug-bridge.js +87 -118
  97. package/lib/common/mobile/android/android-device-file-system.js +98 -135
  98. package/lib/common/mobile/android/android-device-hash-service.js +50 -78
  99. package/lib/common/mobile/android/android-device.js +68 -93
  100. package/lib/common/mobile/android/android-emulator-services.js +105 -131
  101. package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
  102. package/lib/common/mobile/android/android-log-filter.js +1 -5
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -123
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -30
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -123
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -92
  107. package/lib/common/mobile/android/logcat-helper.js +108 -140
  108. package/lib/common/mobile/application-manager-base.js +84 -113
  109. package/lib/common/mobile/device-emitter.js +0 -4
  110. package/lib/common/mobile/device-log-emitter.js +0 -1
  111. package/lib/common/mobile/device-log-provider-base.js +7 -19
  112. package/lib/common/mobile/device-log-provider.js +0 -23
  113. package/lib/common/mobile/device-platforms-constants.js +0 -1
  114. package/lib/common/mobile/emulator-helper.js +0 -3
  115. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -111
  116. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -106
  117. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -146
  118. package/lib/common/mobile/ios/device/ios-device.js +20 -40
  119. package/lib/common/mobile/ios/ios-device-base.js +58 -82
  120. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
  121. package/lib/common/mobile/ios/ios-log-filter.js +0 -1
  122. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -96
  123. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -2
  124. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -95
  125. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -48
  126. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -63
  127. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -36
  128. package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
  129. package/lib/common/mobile/log-filter.js +0 -2
  130. package/lib/common/mobile/logging-levels.js +0 -1
  131. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -64
  132. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -35
  133. package/lib/common/mobile/mobile-core/android-process-service.js +143 -214
  134. package/lib/common/mobile/mobile-core/device-discovery.js +2 -14
  135. package/lib/common/mobile/mobile-core/devices-service.js +386 -505
  136. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -37
  137. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -65
  138. package/lib/common/mobile/mobile-helper.js +15 -27
  139. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -53
  140. package/lib/common/opener.js +2 -3
  141. package/lib/common/os-info.js +0 -1
  142. package/lib/common/plist-parser.js +0 -1
  143. package/lib/common/project-helper.js +0 -1
  144. package/lib/common/prompter.js +91 -114
  145. package/lib/common/queue.js +9 -21
  146. package/lib/common/resource-loader.js +0 -1
  147. package/lib/common/services/auto-completion-service.js +40 -65
  148. package/lib/common/services/cancellation.js +17 -29
  149. package/lib/common/services/commands-service.js +146 -180
  150. package/lib/common/services/help-service.js +133 -166
  151. package/lib/common/services/hooks-service.js +93 -121
  152. package/lib/common/services/ios-notification-service.js +21 -35
  153. package/lib/common/services/json-file-settings-service.js +52 -77
  154. package/lib/common/services/lock-service.js +35 -58
  155. package/lib/common/services/message-contract-generator.js +35 -47
  156. package/lib/common/services/messages-service.js +0 -1
  157. package/lib/common/services/micro-templating-service.js +4 -21
  158. package/lib/common/services/net-service.js +90 -110
  159. package/lib/common/services/project-files-manager.js +10 -28
  160. package/lib/common/services/project-files-provider-base.js +0 -1
  161. package/lib/common/services/proxy-service.js +13 -25
  162. package/lib/common/services/qr.js +13 -25
  163. package/lib/common/services/settings-service.js +1 -2
  164. package/lib/common/services/xcode-select-service.js +20 -36
  165. package/lib/common/utils.js +2 -3
  166. package/lib/common/validators/project-name-validator.js +1 -2
  167. package/lib/common/validators/validation-result.js +1 -2
  168. package/lib/common/verify-node-version.js +3 -11
  169. package/lib/common/yok.js +35 -69
  170. package/lib/config.js +36 -72
  171. package/lib/constants-provider.js +0 -1
  172. package/lib/constants.js +24 -77
  173. package/lib/controllers/build-controller.js +82 -100
  174. package/lib/controllers/debug-controller.js +107 -133
  175. package/lib/controllers/deploy-controller.js +15 -24
  176. package/lib/controllers/migrate-controller.js +723 -884
  177. package/lib/controllers/platform-controller.js +71 -94
  178. package/lib/controllers/prepare-controller.js +232 -274
  179. package/lib/controllers/run-controller.js +397 -427
  180. package/lib/controllers/update-controller-base.js +16 -30
  181. package/lib/controllers/update-controller.js +94 -130
  182. package/lib/data/build-data.js +0 -1
  183. package/lib/data/controller-data-base.js +0 -1
  184. package/lib/data/debug-data.js +0 -1
  185. package/lib/data/platform-data.js +0 -1
  186. package/lib/data/prepare-data.js +4 -2
  187. package/lib/data/run-data.js +0 -1
  188. package/lib/definitions/project.d.ts +24 -24
  189. package/lib/detached-processes/cleanup-js-subprocess.js +5 -20
  190. package/lib/detached-processes/cleanup-process.js +30 -43
  191. package/lib/detached-processes/file-log-service.js +1 -2
  192. package/lib/device-path-provider.js +23 -35
  193. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -171
  194. package/lib/device-sockets/ios/notification.js +1 -4
  195. package/lib/device-sockets/ios/socket-request-executor.js +24 -42
  196. package/lib/helpers/android-bundle-validator-helper.js +2 -3
  197. package/lib/helpers/deploy-command-helper.js +44 -50
  198. package/lib/helpers/key-command-helper.js +6 -17
  199. package/lib/helpers/livesync-command-helper.js +137 -155
  200. package/lib/helpers/network-connectivity-validator.js +6 -18
  201. package/lib/helpers/options-track-helper.js +7 -19
  202. package/lib/helpers/package-path-helper.js +0 -1
  203. package/lib/helpers/platform-command-helper.js +101 -127
  204. package/lib/helpers/version-validator-helper.js +0 -1
  205. package/lib/key-commands/bootstrap.js +2 -3
  206. package/lib/key-commands/index.js +154 -205
  207. package/lib/nativescript-cli-lib-bootstrap.js +0 -4
  208. package/lib/nativescript-cli-lib.js +0 -1
  209. package/lib/nativescript-cli.js +6 -24
  210. package/lib/node/pbxproj-dom-xcode.js +0 -1
  211. package/lib/node/xcode.js +0 -1
  212. package/lib/node-package-manager.js +81 -114
  213. package/lib/options.js +122 -156
  214. package/lib/package-installation-manager.js +130 -172
  215. package/lib/package-manager.js +63 -88
  216. package/lib/platform-command-param.js +4 -16
  217. package/lib/pnpm-package-manager.js +59 -81
  218. package/lib/project-data.js +1 -13
  219. package/lib/providers/project-files-provider.js +1 -2
  220. package/lib/resolvers/livesync-service-resolver.js +0 -1
  221. package/lib/services/analytics/analytics-broker-process.js +19 -32
  222. package/lib/services/analytics/analytics-broker.js +17 -31
  223. package/lib/services/analytics/analytics-service.js +170 -210
  224. package/lib/services/analytics/google-analytics-provider.js +43 -59
  225. package/lib/services/analytics-settings-service.js +15 -37
  226. package/lib/services/android/android-bundle-tool-service.js +43 -61
  227. package/lib/services/android/gradle-build-args-service.js +9 -23
  228. package/lib/services/android/gradle-build-service.js +22 -36
  229. package/lib/services/android/gradle-command-service.js +22 -36
  230. package/lib/services/android-device-debug-service.js +90 -123
  231. package/lib/services/android-plugin-build-service.js +205 -260
  232. package/lib/services/android-project-service.js +129 -241
  233. package/lib/services/android-resources-migration-service.js +51 -71
  234. package/lib/services/apple-portal/apple-portal-application-service.js +46 -64
  235. package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
  236. package/lib/services/apple-portal/apple-portal-session-service.js +197 -218
  237. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -61
  238. package/lib/services/assets-generation/assets-generation-service.js +103 -128
  239. package/lib/services/build-artifacts-service.js +10 -22
  240. package/lib/services/build-data-service.js +0 -1
  241. package/lib/services/build-info-file-service.js +20 -36
  242. package/lib/services/cleanup-service.js +48 -81
  243. package/lib/services/cocoapods-platform-manager.js +0 -9
  244. package/lib/services/cocoapods-service.js +112 -153
  245. package/lib/services/debug-data-service.js +0 -1
  246. package/lib/services/debug-service-base.js +0 -7
  247. package/lib/services/device/device-install-app-service.js +54 -72
  248. package/lib/services/doctor-service.js +101 -135
  249. package/lib/services/extensibility-service.js +81 -108
  250. package/lib/services/files-hash-service.js +26 -44
  251. package/lib/services/hmr-status-service.js +1 -3
  252. package/lib/services/info-service.js +0 -1
  253. package/lib/services/initialize-service.js +37 -54
  254. package/lib/services/ios/export-options-plist-service.js +38 -55
  255. package/lib/services/ios/ios-signing-service.js +168 -191
  256. package/lib/services/ios/spm-service.js +46 -70
  257. package/lib/services/ios/xcodebuild-args-service.js +77 -103
  258. package/lib/services/ios/xcodebuild-command-service.js +14 -26
  259. package/lib/services/ios/xcodebuild-service.js +52 -72
  260. package/lib/services/ios-debugger-port-service.js +24 -38
  261. package/lib/services/ios-device-debug-service.js +75 -103
  262. package/lib/services/ios-entitlements-service.js +31 -43
  263. package/lib/services/ios-extensions-service.js +18 -30
  264. package/lib/services/ios-log-filter.js +0 -20
  265. package/lib/services/ios-native-target-service.js +4 -6
  266. package/lib/services/ios-project-service.js +452 -603
  267. package/lib/services/ios-provision-service.js +108 -132
  268. package/lib/services/ios-watch-app-service.js +21 -33
  269. package/lib/services/ip-service.js +38 -55
  270. package/lib/services/itmstransporter-service.js +129 -153
  271. package/lib/services/karma-execution.js +0 -2
  272. package/lib/services/livesync/android-device-livesync-service-base.js +31 -49
  273. package/lib/services/livesync/android-device-livesync-service.js +120 -151
  274. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -155
  275. package/lib/services/livesync/android-livesync-service.js +14 -36
  276. package/lib/services/livesync/android-livesync-tool.js +90 -117
  277. package/lib/services/livesync/device-livesync-service-base.js +15 -30
  278. package/lib/services/livesync/ios-device-livesync-service.js +114 -150
  279. package/lib/services/livesync/ios-livesync-service.js +42 -60
  280. package/lib/services/livesync/livesync-socket.js +0 -1
  281. package/lib/services/livesync/platform-livesync-service-base.js +94 -124
  282. package/lib/services/livesync-process-data-service.js +0 -1
  283. package/lib/services/log-parser-service.js +1 -2
  284. package/lib/services/log-source-map-service.js +30 -56
  285. package/lib/services/marking-mode-service.js +17 -33
  286. package/lib/services/metadata-filtering-service.js +0 -1
  287. package/lib/services/npm-config-service.js +1 -5
  288. package/lib/services/pacote-service.js +49 -71
  289. package/lib/services/performance-service.js +2 -4
  290. package/lib/services/platform/add-platform-service.js +51 -119
  291. package/lib/services/platform/platform-validation-service.js +22 -34
  292. package/lib/services/platform/prepare-native-platform-service.js +49 -65
  293. package/lib/services/platform-environment-requirements.js +27 -43
  294. package/lib/services/platform-project-service-base.js +0 -1
  295. package/lib/services/platforms-data-service.js +0 -1
  296. package/lib/services/plugins-service.js +125 -168
  297. package/lib/services/prepare-data-service.js +0 -1
  298. package/lib/services/project-backup-service.js +1 -5
  299. package/lib/services/project-changes-service.js +124 -152
  300. package/lib/services/project-cleanup-service.js +64 -79
  301. package/lib/services/project-config-service.js +73 -102
  302. package/lib/services/project-data-service.js +108 -154
  303. package/lib/services/project-name-service.js +28 -44
  304. package/lib/services/project-service.js +84 -113
  305. package/lib/services/project-templates-service.js +52 -68
  306. package/lib/services/qr-code-terminal-service.js +0 -1
  307. package/lib/services/require-service.js +0 -1
  308. package/lib/services/start-service.js +41 -60
  309. package/lib/services/temp-service.js +8 -22
  310. package/lib/services/terminal-spinner-service.js +15 -28
  311. package/lib/services/test-execution-service.js +59 -79
  312. package/lib/services/test-initialization-service.js +2 -6
  313. package/lib/services/timeline-profiler-service.js +1 -2
  314. package/lib/services/user-settings-service.js +0 -1
  315. package/lib/services/versions-service.js +119 -140
  316. package/lib/services/watch-ignore-list-service.js +0 -1
  317. package/lib/services/webpack/webpack-compiler-service.js +215 -279
  318. package/lib/services/xcconfig-service.js +8 -21
  319. package/lib/services/xcproj-service.js +0 -1
  320. package/lib/shared-event-bus.js +0 -6
  321. package/lib/sys-info.js +45 -63
  322. package/lib/tools/config-manipulation/config-transformer.js +0 -12
  323. package/lib/tools/node-modules/node-modules-builder.js +16 -28
  324. package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
  325. package/lib/yarn-package-manager.js +59 -79
  326. package/lib/yarn2-package-manager.js +60 -82
  327. package/package.json +65 -80
  328. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  329. package/node_modules/@npmcli/move-file/README.md +0 -69
  330. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  331. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  342. package/node_modules/@npmcli/move-file/package.json +0 -47
  343. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  344. package/node_modules/balanced-match/LICENSE.md +0 -21
  345. package/node_modules/balanced-match/README.md +0 -97
  346. package/node_modules/balanced-match/index.js +0 -62
  347. package/node_modules/balanced-match/package.json +0 -48
  348. package/node_modules/concat-map/.travis.yml +0 -4
  349. package/node_modules/concat-map/LICENSE +0 -18
  350. package/node_modules/concat-map/README.markdown +0 -62
  351. package/node_modules/concat-map/example/map.js +0 -6
  352. package/node_modules/concat-map/index.js +0 -13
  353. package/node_modules/concat-map/package.json +0 -43
  354. package/node_modules/concat-map/test/map.js +0 -39
  355. package/node_modules/fs.realpath/LICENSE +0 -43
  356. package/node_modules/fs.realpath/README.md +0 -33
  357. package/node_modules/fs.realpath/index.js +0 -66
  358. package/node_modules/fs.realpath/old.js +0 -303
  359. package/node_modules/fs.realpath/package.json +0 -26
  360. package/node_modules/inflight/LICENSE +0 -15
  361. package/node_modules/inflight/README.md +0 -37
  362. package/node_modules/inflight/inflight.js +0 -54
  363. package/node_modules/inflight/package.json +0 -29
  364. package/node_modules/inherits/LICENSE +0 -16
  365. package/node_modules/inherits/README.md +0 -42
  366. package/node_modules/inherits/inherits.js +0 -9
  367. package/node_modules/inherits/inherits_browser.js +0 -27
  368. package/node_modules/inherits/package.json +0 -29
  369. package/node_modules/once/LICENSE +0 -15
  370. package/node_modules/once/README.md +0 -79
  371. package/node_modules/once/once.js +0 -42
  372. package/node_modules/once/package.json +0 -33
  373. package/node_modules/path-is-absolute/index.js +0 -20
  374. package/node_modules/path-is-absolute/license +0 -21
  375. package/node_modules/path-is-absolute/package.json +0 -43
  376. package/node_modules/path-is-absolute/readme.md +0 -59
  377. package/node_modules/rimraf/LICENSE +0 -15
  378. package/node_modules/rimraf/README.md +0 -101
  379. package/node_modules/rimraf/bin.js +0 -68
  380. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  381. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  382. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  383. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  384. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  385. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  386. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  387. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  388. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  389. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  390. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  391. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  392. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  393. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  394. package/node_modules/rimraf/package.json +0 -32
  395. package/node_modules/rimraf/rimraf.js +0 -360
  396. package/node_modules/stringify-package/LICENSE +0 -13
  397. package/node_modules/stringify-package/README.md +0 -55
  398. package/node_modules/stringify-package/index.js +0 -18
  399. package/node_modules/stringify-package/package.json +0 -38
  400. package/node_modules/wrappy/LICENSE +0 -15
  401. package/node_modules/wrappy/README.md +0 -36
  402. package/node_modules/wrappy/package.json +0 -29
  403. 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,155 +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
- // HTML pages may have been skipped on post-install, lets generate them.
56
- this.$logger.trace("Required HTML file '%s' is missing. Let's try generating HTML files and see if we'll find it.", htmlPage);
57
- yield this.generateHtmlPages();
58
- if (!this.tryOpeningSelectedPage(htmlPage)) {
59
- this.$errors.fail("Unable to find help for '%s'", commandName);
60
- }
61
- }
62
- });
63
- }
64
- generateHtmlPages() {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- const mdFiles = this.$fs.enumerateFilesInDirectorySync(this.pathToManPages);
67
- const basicHtmlPage = this.$fs.readText(this.pathToBasicPage);
68
- yield Promise.all(_.map(mdFiles, (markdownFile) => {
69
- const htmlPageGenerationData = {
70
- basicHtmlPage,
71
- pathToMdFile: markdownFile,
72
- pathToMdPages: this.pathToManPages,
73
- pathToHtmlPages: this.pathToHtmlPages,
74
- };
75
- return this.createHtmlPage(htmlPageGenerationData);
76
- }));
77
- const installedExtensionsData = this.$extensibilityService.getInstalledExtensionsData();
78
- const basicHtmlPageForExtensions = this.$fs.readText(this.pathToBasicPageForExtensions);
79
- for (const extensionData of installedExtensionsData) {
80
- const docsDir = extensionData.docs;
81
- if (docsDir) {
82
- this.$logger.trace(`Start generation of html help content for extension ${extensionData.extensionName}`);
83
- if (!this.$fs.exists(docsDir)) {
84
- this.$logger.warn(`Unable to generate html help pages for extension ${extensionData.extensionName} as the docs directory ${docsDir} does not exist.`);
85
- continue;
86
- }
87
- const htmlDirFullPath = HelpService.getHtmlDirFullPath(docsDir);
88
- this.$fs.ensureDirectoryExists(htmlDirFullPath);
89
- const extensionMdFiles = this.$fs.enumerateFilesInDirectorySync(docsDir);
90
- try {
91
- yield Promise.all(_.map(extensionMdFiles, (markdownFile) => {
92
- const htmlPageGenerationData = {
93
- basicHtmlPage: basicHtmlPageForExtensions,
94
- pathToMdFile: markdownFile,
95
- pathToMdPages: docsDir,
96
- pathToHtmlPages: htmlDirFullPath,
97
- extensionName: extensionData.extensionName,
98
- };
99
- return this.createHtmlPage(htmlPageGenerationData);
100
- }));
101
- }
102
- catch (err) {
103
- this.$logger.warn(`Unable to generate html help for extension ${extensionData.extensionName}. Error is: ${err.message}`);
104
- }
105
- this.$logger.trace(`Finished generation of html help content for extension ${extensionData.extensionName}`);
106
- }
107
- }
108
- this.$logger.trace("Finished generating HTML files.");
109
- });
110
- }
111
- showCommandLineHelp(commandData) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- const help = yield this.getCommandLineHelpForCommand(commandData);
114
- this.$logger.printMarkdown(help);
115
- });
116
- }
117
- /**
118
- * Gets the help content for a specific command that should be shown on the terminal.
119
- * @param {string} commandName Name of the command for which to read the help.
120
- * @returns {Promise<string>} Help content of the command parsed with all terminal rules applied (stripped content that should be shown only for html help).
121
- */
122
- getCommandLineHelpForCommand(commandData) {
123
- return __awaiter(this, void 0, void 0, function* () {
124
- const helpText = yield this.readMdFileForCommand(commandData);
125
- const commandLineHelp = (yield this.$microTemplateService.parseContent(helpText, { isHtml: false }))
126
- .replace(/&nbsp;/g, " ")
127
- .replace(HelpService.MARKDOWN_LINK_REGEX, "$1")
128
- .replace(HelpService.SPAN_REGEX, (matchingSubstring, textBeforeSpan, textInsideSpan, index, fullString) => {
129
- return textBeforeSpan + textInsideSpan.replace(this.newLineRegex, "");
130
- })
131
- .replace(HelpService.NEW_LINE_REGEX, os_1.EOL);
132
- return commandLineHelp;
133
- });
134
- }
135
- // This method should return Promise in order to generate all html pages simultaneously.
136
- createHtmlPage(htmlPageGenerationData) {
137
- return __awaiter(this, void 0, void 0, function* () {
138
- const { basicHtmlPage, pathToMdFile, pathToMdPages, pathToHtmlPages, extensionName, } = htmlPageGenerationData;
139
- const mdFileName = path.basename(pathToMdFile);
140
- const htmlFileName = mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, HelpService.HTML_FILE_EXTENSION);
141
- this.$logger.trace("Generating '%s' help topic.", htmlFileName);
142
- const helpText = this.$fs.readText(pathToMdFile);
143
- const outputText = yield this.$microTemplateService.parseContent(helpText, {
144
- isHtml: true,
145
- });
146
- const htmlText = (0, marked_1.marked)(outputText);
147
- const filePath = pathToMdFile
148
- .replace(path.basename(pathToMdPages), path.basename(pathToHtmlPages))
149
- .replace(mdFileName, htmlFileName);
150
- this.$logger.trace("HTML file path for '%s' man page is: '%s'.", mdFileName, filePath);
151
- let outputHtml = basicHtmlPage
152
- .replace(HelpService.MAN_PAGE_NAME_REGEX, mdFileName.replace(HelpService.MARKDOWN_FILE_EXTENSION, ""))
153
- .replace(HelpService.HTML_COMMAND_HELP_REGEX, htmlText)
154
- .replace(HelpService.RELATIVE_PATH_TO_STYLES_CSS_REGEX, path.relative(path.dirname(filePath), this.pathToStylesCss))
155
- .replace(HelpService.RELATIVE_PATH_TO_IMAGES_REGEX, path.relative(path.dirname(filePath), this.pathToImages))
156
- .replace(HelpService.RELATIVE_PATH_TO_INDEX_REGEX, path.relative(path.dirname(filePath), this.pathToIndexHtml));
157
- if (extensionName) {
158
- outputHtml = outputHtml.replace(HelpService.EXTENSION_NAME_REGEX, extensionName);
48
+ this.$errors.fail("Unable to find help for '%s'", commandName);
159
49
  }
160
- this.$fs.writeFile(filePath, outputHtml);
161
- this.$logger.trace("Finished writing file '%s'.", filePath);
162
- });
163
- }
164
- convertCommandNameToFileName(commandData) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- let { commandName } = commandData;
167
- const defaultCommandMatch = commandName && commandName.match(/([\w-]+?)\|\*/);
168
- if (defaultCommandMatch) {
169
- this.$logger.trace("Default command found. Replace current command name '%s' with '%s'.", commandName, defaultCommandMatch[1]);
170
- commandName = defaultCommandMatch[1];
171
- }
172
- const availableCommands = this.$injector
173
- .getRegisteredCommandsNames(true)
174
- .sort();
175
- this.$logger.trace("List of registered commands: %s", availableCommands.join(", "));
176
- if (commandName && !_.includes(availableCommands, commandName)) {
177
- yield this.throwMissingCommandError(commandData);
178
- }
179
- return (commandName && commandName.replace(/\|/g, "-")) || "start";
180
- });
50
+ }
181
51
  }
182
- throwMissingCommandError(commandData) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- const commandName = commandData.commandName;
185
- const commandInfo = {
186
- inputStrings: [commandName, ...commandData.commandArguments],
187
- commandDelimiter: "|" /* CommandsDelimiters.HierarchicalCommand */,
188
- defaultCommandDelimiter: "|*" /* CommandsDelimiters.DefaultHierarchicalCommand */,
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,
189
61
  };
190
- const extensionData = yield this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
191
- if (extensionData) {
192
- 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}`);
193
93
  }
194
- 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(/&nbsp;/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,
195
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());
196
166
  }
197
167
  static getHtmlDirFullPath(docsDir) {
198
168
  return path.join(path.dirname(docsDir), "html");
@@ -231,19 +201,18 @@ class HelpService {
231
201
  this.$logger.trace("Unable to find file: '%s'", htmlPage);
232
202
  return false;
233
203
  }
234
- readMdFileForCommand(commandData) {
235
- return __awaiter(this, void 0, void 0, function* () {
236
- const mdFileName = (yield this.convertCommandNameToFileName(commandData)) +
237
- HelpService.MARKDOWN_FILE_EXTENSION;
238
- this.$logger.trace("Reading help for command '%s'. FileName is '%s'.", commandData.commandName, mdFileName);
239
- const markdownFile = this.getHelpFile(mdFileName, this.pathToManPages);
240
- if (markdownFile) {
241
- return this.$fs.readText(markdownFile);
242
- }
243
- yield this.throwMissingCommandError(commandData);
244
- });
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);
245
213
  }
246
214
  }
215
+ exports.HelpService = HelpService;
247
216
  HelpService.MARKDOWN_FILE_EXTENSION = ".md";
248
217
  HelpService.HTML_FILE_EXTENSION = ".html";
249
218
  HelpService.MAN_PAGE_NAME_REGEX = /@MAN_PAGE_NAME@/g;
@@ -254,7 +223,5 @@ HelpService.RELATIVE_PATH_TO_INDEX_REGEX = /@RELATIVE_PATH_TO_INDEX@/g;
254
223
  HelpService.EXTENSION_NAME_REGEX = /@EXTENSION_NAME@/g;
255
224
  HelpService.MARKDOWN_LINK_REGEX = /\[([\w \-\`\<\>\*\:\\]+?)\]\([\s\S]+?\)/g;
256
225
  HelpService.SPAN_REGEX = /([\s\S]*?)(?:\r?\n)?<span.*?>([\s\S]*?)<\/span>(?:\r?\n)*/g;
257
- HelpService.NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g; // <br>, <br > <br/> <br />
258
- exports.HelpService = HelpService;
226
+ HelpService.NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g;
259
227
  yok_1.injector.register("helpService", HelpService);
260
- //# sourceMappingURL=help-service.js.map
@@ -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");
@@ -61,7 +52,6 @@ class HooksService {
61
52
  }
62
53
  }
63
54
  static formatHookName(commandName) {
64
- // Remove everything after | (including the pipe)
65
55
  return commandName.replace(/\|[\s\S]*$/, "");
66
56
  }
67
57
  executeBeforeHooks(commandName, hookArguments) {
@@ -74,123 +64,111 @@ class HooksService {
74
64
  const traceMessage = `AfterHookName for command ${commandName} is ${afterHookName}`;
75
65
  return this.executeHooks(afterHookName, traceMessage, hookArguments);
76
66
  }
77
- executeHooks(hookName, traceMessage, hookArguments) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- if (this.$config.DISABLE_HOOKS || !this.$options.hooks) {
80
- 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));
81
84
  }
82
- const hookArgs = hookArguments && hookArguments[this.hookArgsName];
83
- let projectDir = hookArgs && hookArgs.projectDir;
84
- if (!projectDir && hookArgs) {
85
- const candidate = (0, helpers_1.getValueFromNestedObject)(hookArgs, "projectDir");
86
- 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));
87
88
  }
88
- this.$logger.trace(`Project dir from hooksArgs is: ${projectDir}.`);
89
- this.initialize(projectDir);
90
- this.$logger.trace(traceMessage);
91
- const results = [];
92
- try {
93
- for (const hooksDirectory of this.hooksDirectories) {
94
- results.push(yield this.executeHooksInDirectory(hooksDirectory, hookName, hookArguments));
95
- }
96
- const customHooks = this.getCustomHooksByName(hookName);
97
- for (const hook of customHooks) {
98
- results.push(yield this.executeHook(this.$projectHelper.projectDir, hookName, hook, hookArguments));
99
- }
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));
100
108
  }
101
- catch (err) {
102
- this.$logger.trace(`Failed during hook execution ${hookName}.`);
103
- 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;
104
119
  }
105
- return _.flatten(results);
106
- });
107
- }
108
- executeHook(directoryPath, hookName, hook, hookArguments) {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- hookArguments = hookArguments || {};
111
- let result;
112
- const relativePath = path.relative(directoryPath, hook.fullPath);
113
- const trackId = relativePath.replace(new RegExp("\\" + path.sep, "g"), constants_1.AnalyticsEventLabelDelimiter);
114
- let command = this.getSheBangInterpreter(hook);
115
- let inProc = false;
116
- if (!command) {
117
- command = hook.fullPath;
118
- if (path.extname(hook.fullPath).toLowerCase() === ".js") {
119
- command = process.argv[0];
120
- inProc = this.shouldExecuteInProcess(this.$fs.readText(hook.fullPath));
121
- }
120
+ const projectDataHookArg = hookArguments["hookArgs"] && hookArguments["hookArgs"]["projectData"];
121
+ if (projectDataHookArg) {
122
+ hookArguments["projectData"] = hookArguments["$projectData"] = projectDataHookArg;
122
123
  }
123
- const startTime = this.$performanceService.now();
124
- if (inProc) {
125
- this.$logger.trace("Executing %s hook at location %s in-process", hookName, hook.fullPath);
126
- const hookEntryPoint = require(hook.fullPath);
127
- this.$logger.trace(`Validating ${hookName} arguments.`);
128
- const invalidArguments = this.validateHookArguments(hookEntryPoint, hook.fullPath);
129
- if (invalidArguments.length) {
130
- this.$logger.warn(`${hook.fullPath} will NOT be executed because it has invalid arguments - ${color_1.color.grey(invalidArguments.join(", "))}.`);
131
- 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;
132
129
  }
133
- // HACK for backwards compatibility:
134
- // In case $projectData wasn't resolved by the time we got here (most likely we got here without running a command but through a service directly)
135
- // then it is probably passed as a hookArg
136
- // if that is the case then pass it directly to the hook instead of trying to resolve $projectData via injector
137
- // This helps make hooks stateless
138
- const projectDataHookArg = hookArguments["hookArgs"] && hookArguments["hookArgs"]["projectData"];
139
- if (projectDataHookArg) {
140
- hookArguments["projectData"] = hookArguments["$projectData"] = projectDataHookArg;
141
- }
142
- const maybePromise = this.$injector.resolve(hookEntryPoint, hookArguments);
143
- if (maybePromise) {
144
- this.$logger.trace("Hook promises to signal completion");
145
- try {
146
- result = yield maybePromise;
130
+ catch (err) {
131
+ if (err &&
132
+ _.isBoolean(err.stopExecution) &&
133
+ err.errorAsWarning === true) {
134
+ this.$logger.warn(err.message || err);
147
135
  }
148
- catch (err) {
149
- if (err &&
150
- _.isBoolean(err.stopExecution) &&
151
- err.errorAsWarning === true) {
152
- this.$logger.warn(err.message || err);
153
- }
154
- else {
155
- // Print the actual error with its callstack, so it is easy to find out which hooks is causing troubles.
156
- this.$logger.error(err);
157
- throw err || new Error(`Failed to execute hook: ${hook.fullPath}.`);
158
- }
136
+ else {
137
+ this.$logger.error(err);
138
+ throw err || new Error(`Failed to execute hook: ${hook.fullPath}.`);
159
139
  }
160
- this.$logger.trace("Hook completed");
161
140
  }
141
+ this.$logger.trace("Hook completed");
162
142
  }
163
- else {
164
- const environment = this.prepareEnvironment(hook.fullPath);
165
- this.$logger.trace("Executing %s hook at location %s with environment ", hookName, hook.fullPath, environment);
166
- const output = yield this.$childProcess.spawnFromEvent(command, [hook.fullPath], "close", environment, { throwError: false });
167
- result = output;
168
- if (output.exitCode !== 0) {
169
- throw new Error(output.stdout + output.stderr);
170
- }
171
- 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);
172
151
  }
173
- const endTime = this.$performanceService.now();
174
- this.$performanceService.processExecutionData(trackId, startTime, endTime, [
175
- hookArguments,
176
- ]);
177
- return result;
178
- });
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;
179
159
  }
180
- executeHooksInDirectory(directoryPath, hookName, hookArguments) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- hookArguments = hookArguments || {};
183
- const results = [];
184
- const hooks = this.getHooksByName(directoryPath, hookName);
185
- for (let i = 0; i < hooks.length; ++i) {
186
- const hook = hooks[i];
187
- const result = yield this.executeHook(directoryPath, hookName, hook, hookArguments);
188
- if (result) {
189
- results.push(result);
190
- }
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);
191
169
  }
192
- return results;
193
- });
170
+ }
171
+ return results;
194
172
  }
195
173
  getCustomHooksByName(hookName) {
196
174
  const hooks = [];
@@ -258,7 +236,6 @@ class HooksService {
258
236
  interpreter = sheBangMatch[1];
259
237
  }
260
238
  if (interpreter) {
261
- // Likewise, make /usr/bin/bash work like "bash".
262
239
  shMatch = interpreter.match(/bin\/((?:ba)?sh)$/);
263
240
  }
264
241
  if (shMatch) {
@@ -299,7 +276,6 @@ class HooksService {
299
276
  }
300
277
  validateHookArguments(hookConstructor, hookFullPath) {
301
278
  const invalidArguments = [];
302
- // We need to annotate the hook in order to have the arguments of the constructor.
303
279
  (0, helpers_1.annotate)(hookConstructor);
304
280
  _.each(hookConstructor.$inject.args, (argument) => {
305
281
  try {
@@ -315,17 +291,13 @@ class HooksService {
315
291
  return invalidArguments;
316
292
  }
317
293
  }
294
+ exports.HooksService = HooksService;
318
295
  HooksService.HOOKS_DIRECTORY_NAME = "hooks";
319
296
  __decorate([
320
297
  (0, decorators_1.memoize)({
321
298
  shouldCache() {
322
- // only cache if we have hooks directories, the only case to
323
- // not have hooks directories is when the project dir is
324
- // not set yet, ie. when creating a project.
325
299
  return !!this.hooksDirectories.length;
326
300
  },
327
301
  })
328
302
  ], HooksService.prototype, "initialize", null);
329
- exports.HooksService = HooksService;
330
303
  yok_1.injector.register("hooksService", HooksService);
331
- //# sourceMappingURL=hooks-service.js.map