nativescript 8.9.0-dev.0 → 8.9.0-dev.2

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 (405) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/.d.ts +1 -0
  3. package/lib/android-tools-info.js +32 -9
  4. package/lib/base-package-manager.js +71 -47
  5. package/lib/bootstrap.js +6 -1
  6. package/lib/bun-package-manager.js +104 -65
  7. package/lib/color.js +5 -2
  8. package/lib/commands/add-platform.js +31 -14
  9. package/lib/commands/apple-login.js +30 -18
  10. package/lib/commands/appstore-list.js +46 -34
  11. package/lib/commands/appstore-upload.js +68 -52
  12. package/lib/commands/build.js +90 -57
  13. package/lib/commands/clean.js +197 -161
  14. package/lib/commands/command-base.js +28 -14
  15. package/lib/commands/config.js +71 -48
  16. package/lib/commands/create-project.js +235 -210
  17. package/lib/commands/debug.js +93 -66
  18. package/lib/commands/deploy.js +47 -30
  19. package/lib/commands/embedding/embed.js +59 -33
  20. package/lib/commands/extensibility/install-extension.js +17 -5
  21. package/lib/commands/extensibility/list-extensions.js +25 -13
  22. package/lib/commands/extensibility/uninstall-extension.js +16 -4
  23. package/lib/commands/fonts.js +42 -30
  24. package/lib/commands/generate-assets.js +29 -13
  25. package/lib/commands/generate-help.js +14 -2
  26. package/lib/commands/generate.js +70 -12
  27. package/lib/commands/info.js +14 -2
  28. package/lib/commands/install.js +50 -34
  29. package/lib/commands/list-platforms.js +26 -14
  30. package/lib/commands/migrate.js +27 -15
  31. package/lib/commands/native-add.js +51 -23
  32. package/lib/commands/platform-clean.js +33 -19
  33. package/lib/commands/plugin/add-plugin.js +26 -12
  34. package/lib/commands/plugin/build-plugin.js +45 -31
  35. package/lib/commands/plugin/create-plugin.js +138 -110
  36. package/lib/commands/plugin/list-plugins.js +34 -22
  37. package/lib/commands/plugin/remove-plugin.js +35 -20
  38. package/lib/commands/plugin/update-plugin.js +34 -20
  39. package/lib/commands/post-install.js +39 -20
  40. package/lib/commands/prepare.js +39 -22
  41. package/lib/commands/preview.js +64 -49
  42. package/lib/commands/remove-platform.js +19 -7
  43. package/lib/commands/resources/resources-update.js +28 -13
  44. package/lib/commands/run.js +77 -55
  45. package/lib/commands/setup.js +1 -0
  46. package/lib/commands/start.js +20 -6
  47. package/lib/commands/test-init.js +138 -123
  48. package/lib/commands/test.js +97 -67
  49. package/lib/commands/typings.js +143 -126
  50. package/lib/commands/update-platform.js +40 -22
  51. package/lib/commands/update.js +45 -30
  52. package/lib/commands/widget.js +767 -0
  53. package/lib/common/bootstrap.js +1 -0
  54. package/lib/common/child-process.js +75 -53
  55. package/lib/common/codeGeneration/code-entity.js +2 -1
  56. package/lib/common/codeGeneration/code-printer.js +2 -1
  57. package/lib/common/command-params.js +19 -7
  58. package/lib/common/commands/analytics.js +43 -27
  59. package/lib/common/commands/autocompletion.js +59 -39
  60. package/lib/common/commands/device/device-log-stream.js +24 -12
  61. package/lib/common/commands/device/get-file.js +35 -22
  62. package/lib/common/commands/device/list-applications.js +24 -12
  63. package/lib/common/commands/device/list-devices.js +90 -72
  64. package/lib/common/commands/device/list-files.js +36 -23
  65. package/lib/common/commands/device/put-file.js +35 -22
  66. package/lib/common/commands/device/run-application.js +26 -12
  67. package/lib/common/commands/device/stop-application.js +23 -11
  68. package/lib/common/commands/device/uninstall-application.js +18 -6
  69. package/lib/common/commands/doctor.js +3 -2
  70. package/lib/common/commands/generate-messages.js +29 -17
  71. package/lib/common/commands/help.js +34 -20
  72. package/lib/common/commands/package-manager-get.js +18 -6
  73. package/lib/common/commands/package-manager-set.js +21 -9
  74. package/lib/common/commands/post-install.js +14 -2
  75. package/lib/common/commands/preuninstall.js +48 -24
  76. package/lib/common/commands/proxy/proxy-base.js +23 -8
  77. package/lib/common/commands/proxy/proxy-clear.js +16 -4
  78. package/lib/common/commands/proxy/proxy-get.js +15 -3
  79. package/lib/common/commands/proxy/proxy-set.js +101 -87
  80. package/lib/common/common-lib.js +1 -0
  81. package/lib/common/constants.js +22 -11
  82. package/lib/common/decorators.js +70 -10
  83. package/lib/common/dispatchers.js +106 -80
  84. package/lib/common/errors.js +116 -91
  85. package/lib/common/file-system.js +141 -108
  86. package/lib/common/header.js +5 -1
  87. package/lib/common/helpers.js +267 -152
  88. package/lib/common/host-info.js +54 -37
  89. package/lib/common/http-client.js +128 -93
  90. package/lib/common/logger/appenders/cli-appender.js +6 -1
  91. package/lib/common/logger/appenders/emit-appender.js +6 -1
  92. package/lib/common/logger/layouts/cli-layout.js +3 -1
  93. package/lib/common/logger/logger.js +9 -4
  94. package/lib/common/messages/messages.js +6 -0
  95. package/lib/common/mobile/android/android-application-manager.js +162 -122
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +2 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +118 -87
  98. package/lib/common/mobile/android/android-device-file-system.js +135 -98
  99. package/lib/common/mobile/android/android-device-hash-service.js +78 -50
  100. package/lib/common/mobile/android/android-device.js +93 -68
  101. package/lib/common/mobile/android/android-emulator-services.js +131 -105
  102. package/lib/common/mobile/android/android-ini-file-parser.js +9 -0
  103. package/lib/common/mobile/android/android-log-filter.js +5 -1
  104. package/lib/common/mobile/android/android-virtual-device-service.js +123 -76
  105. package/lib/common/mobile/android/device-android-debug-bridge.js +30 -13
  106. package/lib/common/mobile/android/genymotion/genymotion-service.js +123 -91
  107. package/lib/common/mobile/android/genymotion/virtualbox-service.js +92 -64
  108. package/lib/common/mobile/android/logcat-helper.js +140 -108
  109. package/lib/common/mobile/application-manager-base.js +113 -84
  110. package/lib/common/mobile/device-emitter.js +4 -0
  111. package/lib/common/mobile/device-log-emitter.js +1 -0
  112. package/lib/common/mobile/device-log-provider-base.js +19 -7
  113. package/lib/common/mobile/device-log-provider.js +23 -0
  114. package/lib/common/mobile/device-platforms-constants.js +1 -0
  115. package/lib/common/mobile/emulator-helper.js +3 -0
  116. package/lib/common/mobile/ios/device/ios-application-manager.js +111 -79
  117. package/lib/common/mobile/ios/device/ios-device-file-system.js +106 -78
  118. package/lib/common/mobile/ios/device/ios-device-operations.js +146 -105
  119. package/lib/common/mobile/ios/device/ios-device.js +40 -20
  120. package/lib/common/mobile/ios/ios-device-base.js +82 -58
  121. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +2 -0
  122. package/lib/common/mobile/ios/ios-log-filter.js +1 -0
  123. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +96 -63
  124. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +2 -1
  125. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +95 -60
  126. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +48 -27
  127. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +63 -37
  128. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +36 -24
  129. package/lib/common/mobile/local-to-device-path-data-factory.js +1 -0
  130. package/lib/common/mobile/log-filter.js +2 -0
  131. package/lib/common/mobile/logging-levels.js +1 -0
  132. package/lib/common/mobile/mobile-core/android-device-discovery.js +64 -43
  133. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +35 -21
  134. package/lib/common/mobile/mobile-core/android-process-service.js +214 -143
  135. package/lib/common/mobile/mobile-core/device-discovery.js +14 -2
  136. package/lib/common/mobile/mobile-core/devices-service.js +505 -386
  137. package/lib/common/mobile/mobile-core/ios-device-discovery.js +37 -24
  138. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +65 -47
  139. package/lib/common/mobile/mobile-helper.js +27 -15
  140. package/lib/common/mobile/wp8/wp8-emulator-services.js +53 -25
  141. package/lib/common/opener.js +3 -2
  142. package/lib/common/os-info.js +1 -0
  143. package/lib/common/plist-parser.js +1 -0
  144. package/lib/common/project-helper.js +1 -0
  145. package/lib/common/prompter.js +114 -91
  146. package/lib/common/queue.js +21 -9
  147. package/lib/common/resource-loader.js +1 -0
  148. package/lib/common/services/auto-completion-service.js +65 -40
  149. package/lib/common/services/cancellation.js +29 -17
  150. package/lib/common/services/commands-service.js +180 -146
  151. package/lib/common/services/help-service.js +166 -133
  152. package/lib/common/services/hooks-service.js +121 -93
  153. package/lib/common/services/ios-notification-service.js +35 -21
  154. package/lib/common/services/json-file-settings-service.js +77 -52
  155. package/lib/common/services/lock-service.js +58 -35
  156. package/lib/common/services/message-contract-generator.js +47 -35
  157. package/lib/common/services/messages-service.js +1 -0
  158. package/lib/common/services/micro-templating-service.js +21 -4
  159. package/lib/common/services/net-service.js +110 -90
  160. package/lib/common/services/project-files-manager.js +28 -10
  161. package/lib/common/services/project-files-provider-base.js +1 -0
  162. package/lib/common/services/proxy-service.js +25 -13
  163. package/lib/common/services/qr.js +25 -13
  164. package/lib/common/services/settings-service.js +2 -1
  165. package/lib/common/services/xcode-select-service.js +36 -20
  166. package/lib/common/utils.js +3 -2
  167. package/lib/common/validators/project-name-validator.js +2 -1
  168. package/lib/common/validators/validation-result.js +2 -1
  169. package/lib/common/verify-node-version.js +11 -3
  170. package/lib/common/yok.js +69 -35
  171. package/lib/config.js +72 -36
  172. package/lib/constants-provider.js +1 -0
  173. package/lib/constants.js +78 -25
  174. package/lib/controllers/build-controller.js +100 -82
  175. package/lib/controllers/debug-controller.js +133 -107
  176. package/lib/controllers/deploy-controller.js +24 -15
  177. package/lib/controllers/migrate-controller.js +884 -723
  178. package/lib/controllers/platform-controller.js +94 -71
  179. package/lib/controllers/prepare-controller.js +274 -232
  180. package/lib/controllers/run-controller.js +427 -397
  181. package/lib/controllers/update-controller-base.js +30 -16
  182. package/lib/controllers/update-controller.js +130 -94
  183. package/lib/data/build-data.js +1 -0
  184. package/lib/data/controller-data-base.js +1 -0
  185. package/lib/data/debug-data.js +1 -0
  186. package/lib/data/platform-data.js +1 -0
  187. package/lib/data/prepare-data.js +2 -4
  188. package/lib/data/run-data.js +1 -0
  189. package/lib/definitions/ios.d.ts +4 -2
  190. package/lib/definitions/project.d.ts +26 -0
  191. package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
  192. package/lib/detached-processes/cleanup-process.js +43 -30
  193. package/lib/detached-processes/file-log-service.js +2 -1
  194. package/lib/device-path-provider.js +35 -23
  195. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
  196. package/lib/device-sockets/ios/notification.js +4 -1
  197. package/lib/device-sockets/ios/socket-request-executor.js +42 -24
  198. package/lib/helpers/android-bundle-validator-helper.js +3 -2
  199. package/lib/helpers/deploy-command-helper.js +50 -44
  200. package/lib/helpers/key-command-helper.js +17 -6
  201. package/lib/helpers/livesync-command-helper.js +155 -137
  202. package/lib/helpers/network-connectivity-validator.js +18 -6
  203. package/lib/helpers/options-track-helper.js +19 -7
  204. package/lib/helpers/package-path-helper.js +1 -0
  205. package/lib/helpers/platform-command-helper.js +127 -101
  206. package/lib/helpers/version-validator-helper.js +1 -0
  207. package/lib/key-commands/bootstrap.js +3 -2
  208. package/lib/key-commands/index.js +205 -154
  209. package/lib/nativescript-cli-lib-bootstrap.js +4 -0
  210. package/lib/nativescript-cli-lib.js +1 -0
  211. package/lib/nativescript-cli.js +24 -6
  212. package/lib/node/pbxproj-dom-xcode.js +1 -0
  213. package/lib/node/xcode.js +1 -0
  214. package/lib/node-package-manager.js +114 -81
  215. package/lib/options.js +156 -122
  216. package/lib/package-installation-manager.js +172 -130
  217. package/lib/package-manager.js +88 -63
  218. package/lib/platform-command-param.js +16 -4
  219. package/lib/pnpm-package-manager.js +81 -59
  220. package/lib/project-data.js +13 -1
  221. package/lib/providers/project-files-provider.js +2 -1
  222. package/lib/resolvers/livesync-service-resolver.js +1 -0
  223. package/lib/services/analytics/analytics-broker-process.js +32 -19
  224. package/lib/services/analytics/analytics-broker.js +31 -17
  225. package/lib/services/analytics/analytics-service.js +210 -170
  226. package/lib/services/analytics/google-analytics-provider.js +59 -43
  227. package/lib/services/analytics-settings-service.js +37 -15
  228. package/lib/services/android/android-bundle-tool-service.js +61 -43
  229. package/lib/services/android/gradle-build-args-service.js +23 -9
  230. package/lib/services/android/gradle-build-service.js +36 -22
  231. package/lib/services/android/gradle-command-service.js +36 -22
  232. package/lib/services/android-device-debug-service.js +123 -90
  233. package/lib/services/android-plugin-build-service.js +260 -205
  234. package/lib/services/android-project-service.js +241 -129
  235. package/lib/services/android-resources-migration-service.js +71 -51
  236. package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
  237. package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
  238. package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
  239. package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
  240. package/lib/services/assets-generation/assets-generation-service.js +128 -103
  241. package/lib/services/build-artifacts-service.js +22 -10
  242. package/lib/services/build-data-service.js +1 -0
  243. package/lib/services/build-info-file-service.js +36 -20
  244. package/lib/services/cleanup-service.js +81 -48
  245. package/lib/services/cocoapods-platform-manager.js +9 -0
  246. package/lib/services/cocoapods-service.js +153 -112
  247. package/lib/services/debug-data-service.js +1 -0
  248. package/lib/services/debug-service-base.js +7 -0
  249. package/lib/services/device/device-install-app-service.js +72 -54
  250. package/lib/services/doctor-service.js +135 -101
  251. package/lib/services/extensibility-service.js +108 -81
  252. package/lib/services/files-hash-service.js +44 -26
  253. package/lib/services/hmr-status-service.js +3 -1
  254. package/lib/services/info-service.js +1 -0
  255. package/lib/services/initialize-service.js +54 -37
  256. package/lib/services/ios/export-options-plist-service.js +55 -38
  257. package/lib/services/ios/ios-signing-service.js +191 -168
  258. package/lib/services/ios/spm-service.js +73 -43
  259. package/lib/services/ios/xcodebuild-args-service.js +103 -77
  260. package/lib/services/ios/xcodebuild-command-service.js +26 -14
  261. package/lib/services/ios/xcodebuild-service.js +72 -52
  262. package/lib/services/ios-debugger-port-service.js +38 -24
  263. package/lib/services/ios-device-debug-service.js +103 -75
  264. package/lib/services/ios-entitlements-service.js +43 -31
  265. package/lib/services/ios-extensions-service.js +30 -18
  266. package/lib/services/ios-log-filter.js +20 -0
  267. package/lib/services/ios-native-target-service.js +6 -4
  268. package/lib/services/ios-project-service.js +605 -437
  269. package/lib/services/ios-provision-service.js +132 -108
  270. package/lib/services/ios-watch-app-service.js +33 -21
  271. package/lib/services/ip-service.js +55 -38
  272. package/lib/services/itmstransporter-service.js +153 -129
  273. package/lib/services/karma-execution.js +2 -0
  274. package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
  275. package/lib/services/livesync/android-device-livesync-service.js +151 -120
  276. package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
  277. package/lib/services/livesync/android-livesync-service.js +36 -14
  278. package/lib/services/livesync/android-livesync-tool.js +117 -90
  279. package/lib/services/livesync/device-livesync-service-base.js +30 -15
  280. package/lib/services/livesync/ios-device-livesync-service.js +150 -114
  281. package/lib/services/livesync/ios-livesync-service.js +60 -42
  282. package/lib/services/livesync/livesync-socket.js +1 -0
  283. package/lib/services/livesync/platform-livesync-service-base.js +124 -94
  284. package/lib/services/livesync-process-data-service.js +1 -0
  285. package/lib/services/log-parser-service.js +2 -1
  286. package/lib/services/log-source-map-service.js +56 -30
  287. package/lib/services/marking-mode-service.js +33 -17
  288. package/lib/services/metadata-filtering-service.js +1 -0
  289. package/lib/services/npm-config-service.js +5 -1
  290. package/lib/services/pacote-service.js +73 -51
  291. package/lib/services/performance-service.js +4 -2
  292. package/lib/services/platform/add-platform-service.js +119 -51
  293. package/lib/services/platform/platform-validation-service.js +34 -22
  294. package/lib/services/platform/prepare-native-platform-service.js +65 -49
  295. package/lib/services/platform-environment-requirements.js +43 -27
  296. package/lib/services/platform-project-service-base.js +1 -0
  297. package/lib/services/platforms-data-service.js +1 -0
  298. package/lib/services/plugins-service.js +168 -125
  299. package/lib/services/prepare-data-service.js +1 -0
  300. package/lib/services/project-backup-service.js +5 -1
  301. package/lib/services/project-changes-service.js +152 -124
  302. package/lib/services/project-cleanup-service.js +79 -64
  303. package/lib/services/project-config-service.js +111 -73
  304. package/lib/services/project-data-service.js +154 -108
  305. package/lib/services/project-name-service.js +44 -28
  306. package/lib/services/project-service.js +113 -84
  307. package/lib/services/project-templates-service.js +68 -52
  308. package/lib/services/qr-code-terminal-service.js +1 -0
  309. package/lib/services/require-service.js +1 -0
  310. package/lib/services/start-service.js +60 -41
  311. package/lib/services/temp-service.js +22 -8
  312. package/lib/services/terminal-spinner-service.js +28 -15
  313. package/lib/services/test-execution-service.js +79 -59
  314. package/lib/services/test-initialization-service.js +6 -2
  315. package/lib/services/timeline-profiler-service.js +2 -1
  316. package/lib/services/user-settings-service.js +1 -0
  317. package/lib/services/versions-service.js +140 -119
  318. package/lib/services/watch-ignore-list-service.js +1 -0
  319. package/lib/services/webpack/webpack-compiler-service.js +279 -215
  320. package/lib/services/xcconfig-service.js +21 -8
  321. package/lib/services/xcproj-service.js +1 -0
  322. package/lib/shared-event-bus.js +6 -0
  323. package/lib/sys-info.js +63 -45
  324. package/lib/tools/config-manipulation/config-transformer.js +21 -0
  325. package/lib/tools/node-modules/node-modules-builder.js +28 -16
  326. package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
  327. package/lib/yarn-package-manager.js +79 -59
  328. package/lib/yarn2-package-manager.js +82 -60
  329. package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
  330. package/node_modules/@npmcli/move-file/README.md +69 -0
  331. package/node_modules/@npmcli/move-file/lib/index.js +185 -0
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
  342. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
  343. package/node_modules/@npmcli/move-file/package.json +47 -0
  344. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  345. package/node_modules/balanced-match/LICENSE.md +21 -0
  346. package/node_modules/balanced-match/README.md +97 -0
  347. package/node_modules/balanced-match/index.js +62 -0
  348. package/node_modules/balanced-match/package.json +48 -0
  349. package/node_modules/concat-map/.travis.yml +4 -0
  350. package/node_modules/concat-map/LICENSE +18 -0
  351. package/node_modules/concat-map/README.markdown +62 -0
  352. package/node_modules/concat-map/example/map.js +6 -0
  353. package/node_modules/concat-map/index.js +13 -0
  354. package/node_modules/concat-map/package.json +43 -0
  355. package/node_modules/concat-map/test/map.js +39 -0
  356. package/node_modules/fs.realpath/LICENSE +43 -0
  357. package/node_modules/fs.realpath/README.md +33 -0
  358. package/node_modules/fs.realpath/index.js +66 -0
  359. package/node_modules/fs.realpath/old.js +303 -0
  360. package/node_modules/fs.realpath/package.json +26 -0
  361. package/node_modules/inflight/LICENSE +15 -0
  362. package/node_modules/inflight/README.md +37 -0
  363. package/node_modules/inflight/inflight.js +54 -0
  364. package/node_modules/inflight/package.json +29 -0
  365. package/node_modules/inherits/LICENSE +16 -0
  366. package/node_modules/inherits/README.md +42 -0
  367. package/node_modules/inherits/inherits.js +9 -0
  368. package/node_modules/inherits/inherits_browser.js +27 -0
  369. package/node_modules/inherits/package.json +29 -0
  370. package/node_modules/once/LICENSE +15 -0
  371. package/node_modules/once/README.md +79 -0
  372. package/node_modules/once/once.js +42 -0
  373. package/node_modules/once/package.json +33 -0
  374. package/node_modules/path-is-absolute/index.js +20 -0
  375. package/node_modules/path-is-absolute/license +21 -0
  376. package/node_modules/path-is-absolute/package.json +43 -0
  377. package/node_modules/path-is-absolute/readme.md +59 -0
  378. package/node_modules/rimraf/LICENSE +15 -0
  379. package/node_modules/rimraf/README.md +101 -0
  380. package/node_modules/rimraf/bin.js +68 -0
  381. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
  382. package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
  383. package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
  384. package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
  385. package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
  386. package/node_modules/rimraf/node_modules/glob/README.md +378 -0
  387. package/node_modules/rimraf/node_modules/glob/common.js +238 -0
  388. package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
  389. package/node_modules/rimraf/node_modules/glob/package.json +55 -0
  390. package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
  391. package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
  392. package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
  393. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
  394. package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
  395. package/node_modules/rimraf/package.json +32 -0
  396. package/node_modules/rimraf/rimraf.js +360 -0
  397. package/node_modules/stringify-package/LICENSE +13 -0
  398. package/node_modules/stringify-package/README.md +55 -0
  399. package/node_modules/stringify-package/index.js +18 -0
  400. package/node_modules/stringify-package/package.json +38 -0
  401. package/node_modules/wrappy/LICENSE +15 -0
  402. package/node_modules/wrappy/README.md +36 -0
  403. package/node_modules/wrappy/package.json +29 -0
  404. package/node_modules/wrappy/wrappy.js +33 -0
  405. package/package.json +79 -64
@@ -5,6 +5,15 @@ 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
+ };
8
17
  Object.defineProperty(exports, "__esModule", { value: true });
9
18
  exports.ProjectChangesService = void 0;
10
19
  const path = require("path");
@@ -39,81 +48,84 @@ class ProjectChangesService {
39
48
  get currentChanges() {
40
49
  return this._changesInfo;
41
50
  }
42
- async checkForChanges(platformData, projectData, prepareData) {
43
- this._changesInfo = new ProjectChangesInfo();
44
- const isNewPrepareInfo = await this.ensurePrepareInfo(platformData, projectData, prepareData);
45
- if (!isNewPrepareInfo) {
46
- let platformResourcesDir = path.join(projectData.appResourcesDirectoryPath, platformData.normalizedPlatformName);
47
- if (!this.$fs.exists(platformResourcesDir) &&
48
- platformData.platformNameLowerCase ===
49
- this.$devicePlatformsConstants.visionOS.toLowerCase()) {
50
- platformResourcesDir = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.iOS);
51
- }
52
- this._changesInfo.appResourcesChanged = this.containsNewerFiles(platformResourcesDir, projectData);
53
- this.$nodeModulesDependenciesBuilder
54
- .getProductionDependencies(projectData.projectDir, projectData.ignoredDependencies)
55
- .filter((dep) => dep.nativescript &&
56
- this.$fs.exists(path.join(dep.directory, constants_1.PLATFORMS_DIR_NAME, platformData.platformNameLowerCase)))
57
- .forEach((dep) => {
51
+ checkForChanges(platformData, projectData, prepareData) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ this._changesInfo = new ProjectChangesInfo();
54
+ const isNewPrepareInfo = yield this.ensurePrepareInfo(platformData, projectData, prepareData);
55
+ if (!isNewPrepareInfo) {
56
+ let platformResourcesDir = path.join(projectData.appResourcesDirectoryPath, platformData.normalizedPlatformName);
57
+ if (!this.$fs.exists(platformResourcesDir) &&
58
+ platformData.platformNameLowerCase ===
59
+ this.$devicePlatformsConstants.visionOS.toLowerCase()) {
60
+ platformResourcesDir = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.iOS);
61
+ }
62
+ this._changesInfo.appResourcesChanged = this.containsNewerFiles(platformResourcesDir, projectData);
63
+ this.$nodeModulesDependenciesBuilder
64
+ .getProductionDependencies(projectData.projectDir, projectData.ignoredDependencies)
65
+ .filter((dep) => dep.nativescript &&
66
+ this.$fs.exists(path.join(dep.directory, constants_1.PLATFORMS_DIR_NAME, platformData.platformNameLowerCase)))
67
+ .forEach((dep) => {
68
+ this._changesInfo.nativeChanged =
69
+ this._changesInfo.nativeChanged ||
70
+ this.containsNewerFiles(path.join(dep.directory, constants_1.PLATFORMS_DIR_NAME, platformData.platformNameLowerCase), projectData) ||
71
+ this.isFileModified(path.join(dep.directory, constants_1.PACKAGE_JSON_FILE_NAME));
72
+ });
73
+ if (!this._changesInfo.nativeChanged) {
74
+ this._prepareInfo.projectFileHash = this.getProjectFileStrippedHash(projectData.projectDir, platformData);
75
+ this._changesInfo.nativeChanged = this.isProjectFileChanged(projectData.projectDir, platformData);
76
+ }
77
+ // If this causes too much rebuilds of the plugins or uncecessary builds for Android, move overrideCocoapods to prepareInfo.
78
+ this._changesInfo.nsConfigChanged = this.filesChanged([
79
+ path.join(projectData.projectDir, constants_1.CONFIG_FILE_NAME_JS),
80
+ path.join(projectData.projectDir, constants_1.CONFIG_FILE_NAME_TS),
81
+ path.join(projectData.projectDir, constants_1.CONFIG_NS_FILE_NAME),
82
+ ]);
58
83
  this._changesInfo.nativeChanged =
59
- this._changesInfo.nativeChanged ||
60
- this.containsNewerFiles(path.join(dep.directory, constants_1.PLATFORMS_DIR_NAME, platformData.platformNameLowerCase), projectData) ||
61
- this.isFileModified(path.join(dep.directory, constants_1.PACKAGE_JSON_FILE_NAME));
62
- });
63
- if (!this._changesInfo.nativeChanged) {
64
- this._prepareInfo.projectFileHash = this.getProjectFileStrippedHash(projectData.projectDir, platformData);
65
- this._changesInfo.nativeChanged = this.isProjectFileChanged(projectData.projectDir, platformData);
84
+ this._changesInfo.nativeChanged || this._changesInfo.nsConfigChanged;
85
+ this.$logger.trace(`Set nativeChanged to ${this._changesInfo.nativeChanged}.`);
86
+ if (platformData.platformNameLowerCase ===
87
+ this.$devicePlatformsConstants.iOS.toLowerCase()) {
88
+ this._changesInfo.configChanged = this.filesChanged([
89
+ path.join(platformResourcesDir, platformData.configurationFileName),
90
+ path.join(platformResourcesDir, "LaunchScreen.storyboard"),
91
+ path.join(platformResourcesDir, constants_1.BUILD_XCCONFIG_FILE_NAME),
92
+ ]);
93
+ }
94
+ else {
95
+ this._changesInfo.configChanged = this.filesChanged([
96
+ path.join(platformResourcesDir, platformData.configurationFileName),
97
+ path.join(platformResourcesDir, constants_1.APP_GRADLE_FILE_NAME),
98
+ ]);
99
+ }
100
+ this.$logger.trace(`Set value of configChanged to ${this._changesInfo.configChanged}`);
66
101
  }
67
- this._changesInfo.nsConfigChanged = this.filesChanged([
68
- path.join(projectData.projectDir, constants_1.CONFIG_FILE_NAME_JS),
69
- path.join(projectData.projectDir, constants_1.CONFIG_FILE_NAME_TS),
70
- path.join(projectData.projectDir, constants_1.CONFIG_NS_FILE_NAME),
71
- ]);
72
- this._changesInfo.nativeChanged =
73
- this._changesInfo.nativeChanged || this._changesInfo.nsConfigChanged;
74
- this.$logger.trace(`Set nativeChanged to ${this._changesInfo.nativeChanged}.`);
75
- if (platformData.platformNameLowerCase ===
76
- this.$devicePlatformsConstants.iOS.toLowerCase()) {
77
- this._changesInfo.configChanged = this.filesChanged([
78
- path.join(platformResourcesDir, platformData.configurationFileName),
79
- path.join(platformResourcesDir, "LaunchScreen.storyboard"),
80
- path.join(platformResourcesDir, constants_1.BUILD_XCCONFIG_FILE_NAME),
81
- ]);
102
+ if (!prepareData.nativePrepare ||
103
+ !prepareData.nativePrepare.skipNativePrepare) {
104
+ yield platformData.platformProjectService.checkForChanges(this._changesInfo, prepareData, projectData);
82
105
  }
83
- else {
84
- this._changesInfo.configChanged = this.filesChanged([
85
- path.join(platformResourcesDir, platformData.configurationFileName),
86
- path.join(platformResourcesDir, constants_1.APP_GRADLE_FILE_NAME),
87
- ]);
106
+ if (!!prepareData.release !== !!this._prepareInfo.release) {
107
+ this.$logger.trace(`Setting all setting to true. Current options are: `, prepareData, " old prepare info is: ", this._prepareInfo);
108
+ this._changesInfo.appResourcesChanged = true;
109
+ this._changesInfo.configChanged = true;
110
+ this._prepareInfo.release = prepareData.release;
88
111
  }
89
- this.$logger.trace(`Set value of configChanged to ${this._changesInfo.configChanged}`);
90
- }
91
- if (!prepareData.nativePrepare ||
92
- !prepareData.nativePrepare.skipNativePrepare) {
93
- await platformData.platformProjectService.checkForChanges(this._changesInfo, prepareData, projectData);
94
- }
95
- if (!!prepareData.release !== !!this._prepareInfo.release) {
96
- this.$logger.trace(`Setting all setting to true. Current options are: `, prepareData, " old prepare info is: ", this._prepareInfo);
97
- this._changesInfo.appResourcesChanged = true;
98
- this._changesInfo.configChanged = true;
99
- this._prepareInfo.release = prepareData.release;
100
- }
101
- if (this._changesInfo.appResourcesChanged) {
102
- this.$logger.trace(`Set configChanged to true, appResourcesChanged is: ${this._changesInfo.appResourcesChanged}`);
103
- this._changesInfo.configChanged = true;
104
- }
105
- if (this._changesInfo.hasChanges) {
106
- this._prepareInfo.changesRequireBuild =
107
- this._changesInfo.changesRequireBuild;
108
- this._prepareInfo.time = new Date().toString();
109
- if (this._prepareInfo.changesRequireBuild) {
110
- this._prepareInfo.changesRequireBuildTime = this._prepareInfo.time;
112
+ if (this._changesInfo.appResourcesChanged) {
113
+ this.$logger.trace(`Set configChanged to true, appResourcesChanged is: ${this._changesInfo.appResourcesChanged}`);
114
+ this._changesInfo.configChanged = true;
111
115
  }
112
- }
113
- this._changesInfo.nativePlatformStatus =
114
- this._prepareInfo.nativePlatformStatus;
115
- this.$logger.trace("checkForChanges returns", this._changesInfo);
116
- return this._changesInfo;
116
+ if (this._changesInfo.hasChanges) {
117
+ this._prepareInfo.changesRequireBuild =
118
+ this._changesInfo.changesRequireBuild;
119
+ this._prepareInfo.time = new Date().toString();
120
+ if (this._prepareInfo.changesRequireBuild) {
121
+ this._prepareInfo.changesRequireBuildTime = this._prepareInfo.time;
122
+ }
123
+ }
124
+ this._changesInfo.nativePlatformStatus =
125
+ this._prepareInfo.nativePlatformStatus;
126
+ this.$logger.trace("checkForChanges returns", this._changesInfo);
127
+ return this._changesInfo;
128
+ });
117
129
  }
118
130
  getPrepareInfoFilePath(platformData) {
119
131
  const prepareInfoFilePath = path.join(platformData.projectRoot, prepareInfoFileName);
@@ -121,6 +133,7 @@ class ProjectChangesService {
121
133
  }
122
134
  getPrepareInfo(platformData) {
123
135
  if (this.$options.hostProjectPath) {
136
+ // TODO: always prepare for now until we decide where to keep the .nsprepareinfo file when embedding
124
137
  return null;
125
138
  }
126
139
  const prepareInfoFilePath = this.getPrepareInfoFilePath(platformData);
@@ -135,68 +148,82 @@ class ProjectChangesService {
135
148
  }
136
149
  return prepareInfo;
137
150
  }
138
- async savePrepareInfo(platformData, projectData, prepareData) {
139
- if (!this._prepareInfo) {
140
- await this.ensurePrepareInfo(platformData, projectData, prepareData);
141
- }
142
- if (this.$options.hostProjectPath) {
143
- return null;
144
- }
145
- const prepareInfoFilePath = this.getPrepareInfoFilePath(platformData);
146
- this.$fs.writeJson(prepareInfoFilePath, this._prepareInfo);
151
+ savePrepareInfo(platformData, projectData, prepareData) {
152
+ return __awaiter(this, void 0, void 0, function* () {
153
+ if (!this._prepareInfo) {
154
+ yield this.ensurePrepareInfo(platformData, projectData, prepareData);
155
+ }
156
+ if (this.$options.hostProjectPath) {
157
+ // TODO: do not save for now until we decide where to keep the .nsprepareinfo file when embedding
158
+ return null;
159
+ }
160
+ const prepareInfoFilePath = this.getPrepareInfoFilePath(platformData);
161
+ this.$fs.writeJson(prepareInfoFilePath, this._prepareInfo);
162
+ });
147
163
  }
148
- async setNativePlatformStatus(platformData, projectData, addedPlatform) {
149
- this._prepareInfo = this._prepareInfo || this.getPrepareInfo(platformData);
150
- if (this._prepareInfo &&
151
- addedPlatform.nativePlatformStatus ===
152
- "3") {
153
- this._prepareInfo.nativePlatformStatus =
154
- addedPlatform.nativePlatformStatus;
155
- }
156
- else {
164
+ setNativePlatformStatus(platformData, projectData, addedPlatform) {
165
+ return __awaiter(this, void 0, void 0, function* () {
166
+ this._prepareInfo = this._prepareInfo || this.getPrepareInfo(platformData);
167
+ if (this._prepareInfo &&
168
+ addedPlatform.nativePlatformStatus ===
169
+ "3" /* NativePlatformStatus.alreadyPrepared */) {
170
+ this._prepareInfo.nativePlatformStatus =
171
+ addedPlatform.nativePlatformStatus;
172
+ }
173
+ else {
174
+ this._prepareInfo = {
175
+ nativePlatformStatus: addedPlatform.nativePlatformStatus,
176
+ };
177
+ }
178
+ yield this.savePrepareInfo(platformData, projectData, null);
179
+ });
180
+ }
181
+ ensurePrepareInfo(platformData, projectData, prepareData) {
182
+ return __awaiter(this, void 0, void 0, function* () {
183
+ this._prepareInfo = this.getPrepareInfo(platformData);
184
+ if (this._prepareInfo) {
185
+ const prepareInfoFile = path.join(platformData.projectRoot, prepareInfoFileName);
186
+ this._outputProjectMtime = this.$fs
187
+ .getFsStats(prepareInfoFile)
188
+ .mtime.getTime();
189
+ this._outputProjectCTime = this.$fs
190
+ .getFsStats(prepareInfoFile)
191
+ .ctime.getTime();
192
+ return false;
193
+ }
194
+ const nativePlatformStatus = !prepareData.nativePrepare || !prepareData.nativePrepare.skipNativePrepare
195
+ ? "2" /* NativePlatformStatus.requiresPrepare */
196
+ : "1" /* NativePlatformStatus.requiresPlatformAdd */;
157
197
  this._prepareInfo = {
158
- nativePlatformStatus: addedPlatform.nativePlatformStatus,
198
+ time: "",
199
+ nativePlatformStatus,
200
+ release: prepareData.release,
201
+ changesRequireBuild: true,
202
+ projectFileHash: this.getProjectFileStrippedHash(projectData.projectDir, platformData),
203
+ changesRequireBuildTime: null,
159
204
  };
160
- }
161
- await this.savePrepareInfo(platformData, projectData, null);
162
- }
163
- async ensurePrepareInfo(platformData, projectData, prepareData) {
164
- this._prepareInfo = this.getPrepareInfo(platformData);
165
- if (this._prepareInfo) {
166
- const prepareInfoFile = path.join(platformData.projectRoot, prepareInfoFileName);
167
- this._outputProjectMtime = this.$fs
168
- .getFsStats(prepareInfoFile)
169
- .mtime.getTime();
170
- this._outputProjectCTime = this.$fs
171
- .getFsStats(prepareInfoFile)
172
- .ctime.getTime();
173
- return false;
174
- }
175
- const nativePlatformStatus = !prepareData.nativePrepare || !prepareData.nativePrepare.skipNativePrepare
176
- ? "2"
177
- : "1";
178
- this._prepareInfo = {
179
- time: "",
180
- nativePlatformStatus,
181
- release: prepareData.release,
182
- changesRequireBuild: true,
183
- projectFileHash: this.getProjectFileStrippedHash(projectData.projectDir, platformData),
184
- changesRequireBuildTime: null,
185
- };
186
- this._outputProjectMtime = 0;
187
- this._outputProjectCTime = 0;
188
- this._changesInfo = this._changesInfo || new ProjectChangesInfo();
189
- this._changesInfo.appResourcesChanged = true;
190
- this._changesInfo.configChanged = true;
191
- this._changesInfo.nativeChanged = true;
192
- this._changesInfo.nsConfigChanged = true;
193
- return true;
205
+ this._outputProjectMtime = 0;
206
+ this._outputProjectCTime = 0;
207
+ this._changesInfo = this._changesInfo || new ProjectChangesInfo();
208
+ this._changesInfo.appResourcesChanged = true;
209
+ this._changesInfo.configChanged = true;
210
+ this._changesInfo.nativeChanged = true;
211
+ this._changesInfo.nsConfigChanged = true;
212
+ return true;
213
+ });
194
214
  }
195
215
  getProjectFileStrippedHash(projectDir, platformData) {
196
216
  const projectFilePath = path.join(projectDir, constants_1.PACKAGE_JSON_FILE_NAME);
197
217
  const projectFileContents = this.$fs.readJson(projectFilePath);
198
218
  const relevantProperties = ["dependencies"];
199
219
  const projectFileStrippedContents = _.pick(projectFileContents, relevantProperties);
220
+ // _(this.$devicePlatformsConstants)
221
+ // .keys()
222
+ // .map(k => k.toLowerCase())
223
+ // .difference([platformData.platformNameLowerCase])
224
+ // .each(otherPlatform => {
225
+ // delete projectFileContents.nativescript[`tns-${otherPlatform}`];
226
+ // });
200
227
  return (0, helpers_1.getHash)(JSON.stringify(projectFileStrippedContents));
201
228
  }
202
229
  isProjectFileChanged(projectDir, platformData) {
@@ -257,8 +284,9 @@ class ProjectChangesService {
257
284
  return changed;
258
285
  }
259
286
  }
260
- exports.ProjectChangesService = ProjectChangesService;
261
287
  __decorate([
262
288
  (0, helpers_1.hook)("checkForChanges")
263
289
  ], ProjectChangesService.prototype, "checkForChanges", null);
290
+ exports.ProjectChangesService = ProjectChangesService;
264
291
  yok_1.injector.register("projectChangesService", ProjectChangesService);
292
+ //# sourceMappingURL=project-changes-service.js.map
@@ -1,4 +1,13 @@
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.ProjectCleanupService = void 0;
4
13
  const yok_1 = require("../common/yok");
@@ -11,79 +20,85 @@ class ProjectCleanupService {
11
20
  this.$projectHelper = $projectHelper;
12
21
  this.$terminalSpinnerService = $terminalSpinnerService;
13
22
  }
14
- async clean(pathsToClean, options) {
15
- this.spinner = this.$terminalSpinnerService.createSpinner({
16
- isSilent: options === null || options === void 0 ? void 0 : options.silent,
17
- });
18
- let stats = (options === null || options === void 0 ? void 0 : options.stats) ? new Map() : false;
19
- let success = true;
20
- for (const pathToClean of pathsToClean) {
21
- const cleanRes = await this.cleanPath(pathToClean, options).catch((error) => {
22
- this.$logger.trace(`Encountered error while cleaning. Error is: ${error.message}.`, error);
23
- return { ok: false };
23
+ clean(pathsToClean, options) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ this.spinner = this.$terminalSpinnerService.createSpinner({
26
+ isSilent: options === null || options === void 0 ? void 0 : options.silent,
24
27
  });
25
- if (stats && "size" in cleanRes) {
26
- stats.set(pathToClean, cleanRes.size);
28
+ let stats = (options === null || options === void 0 ? void 0 : options.stats) ? new Map() : false;
29
+ let success = true;
30
+ for (const pathToClean of pathsToClean) {
31
+ const cleanRes = yield this.cleanPath(pathToClean, options).catch((error) => {
32
+ this.$logger.trace(`Encountered error while cleaning. Error is: ${error.message}.`, error);
33
+ return { ok: false };
34
+ });
35
+ if (stats && "size" in cleanRes) {
36
+ stats.set(pathToClean, cleanRes.size);
37
+ }
38
+ success = success && cleanRes.ok;
27
39
  }
28
- success = success && cleanRes.ok;
29
- }
30
- if (!(options === null || options === void 0 ? void 0 : options.silent)) {
31
- console.log();
32
- }
33
- if (stats) {
34
- return { ok: success, stats };
35
- }
36
- return { ok: success };
37
- }
38
- async cleanPath(pathToClean, options) {
39
- var _a;
40
- const dryRun = (_a = options === null || options === void 0 ? void 0 : options.dryRun) !== null && _a !== void 0 ? _a : false;
41
- const logPrefix = dryRun ? color_1.color.grey("(dry run) ") : "";
42
- this.spinner.clear();
43
- let fileType;
44
- if (!pathToClean || pathToClean.trim().length === 0) {
45
- this.$logger.trace(`${logPrefix}cleanPath called with no pathToClean.`);
46
- return { ok: true };
47
- }
48
- const filePath = path.resolve(this.$projectHelper.projectDir, pathToClean);
49
- const displayPath = color_1.color.yellow(`${path.relative(this.$projectHelper.projectDir, filePath)}`);
50
- this.$logger.trace(`${logPrefix}Trying to clean '${filePath}'`);
51
- if (this.$fs.exists(filePath)) {
52
- const stat = this.$fs.getFsStats(filePath);
53
- let size = 0;
54
- if (options === null || options === void 0 ? void 0 : options.stats) {
55
- size = this.$fs.getSize(filePath);
56
- }
57
- if (stat.isDirectory()) {
58
- this.$logger.trace(`${logPrefix}Path '${filePath}' is a directory, deleting.`);
59
- !dryRun && this.$fs.deleteDirectorySafe(filePath);
60
- fileType = "directory";
40
+ if (!(options === null || options === void 0 ? void 0 : options.silent)) {
41
+ // required to print an empty line for the spinner to not replace the last status... (probably a bug in the spinners)
42
+ console.log();
61
43
  }
62
- else {
63
- this.$logger.trace(`${logPrefix}Path '${filePath}' is a file, deleting.`);
64
- !dryRun && this.$fs.deleteFile(filePath);
65
- fileType = "file";
44
+ if (stats) {
45
+ return { ok: success, stats };
66
46
  }
67
- const success = dryRun || !this.$fs.exists(filePath);
68
- if (success) {
69
- this.spinner.succeed(`${logPrefix}Cleaned ${fileType} ${displayPath}`);
47
+ return { ok: success };
48
+ });
49
+ }
50
+ cleanPath(pathToClean, options) {
51
+ var _a;
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const dryRun = (_a = options === null || options === void 0 ? void 0 : options.dryRun) !== null && _a !== void 0 ? _a : false;
54
+ const logPrefix = dryRun ? color_1.color.grey("(dry run) ") : "";
55
+ this.spinner.clear();
56
+ let fileType;
57
+ if (!pathToClean || pathToClean.trim().length === 0) {
58
+ this.$logger.trace(`${logPrefix}cleanPath called with no pathToClean.`);
59
+ return { ok: true };
70
60
  }
71
- else {
72
- const message = color_1.color.red(`Failed to Clean ${fileType}`);
73
- this.spinner.fail(`${logPrefix}${message} ${displayPath}`);
61
+ const filePath = path.resolve(this.$projectHelper.projectDir, pathToClean);
62
+ const displayPath = color_1.color.yellow(`${path.relative(this.$projectHelper.projectDir, filePath)}`);
63
+ this.$logger.trace(`${logPrefix}Trying to clean '${filePath}'`);
64
+ if (this.$fs.exists(filePath)) {
65
+ const stat = this.$fs.getFsStats(filePath);
66
+ let size = 0;
67
+ if (options === null || options === void 0 ? void 0 : options.stats) {
68
+ size = this.$fs.getSize(filePath);
69
+ }
70
+ if (stat.isDirectory()) {
71
+ this.$logger.trace(`${logPrefix}Path '${filePath}' is a directory, deleting.`);
72
+ !dryRun && this.$fs.deleteDirectorySafe(filePath);
73
+ fileType = "directory";
74
+ }
75
+ else {
76
+ this.$logger.trace(`${logPrefix}Path '${filePath}' is a file, deleting.`);
77
+ !dryRun && this.$fs.deleteFile(filePath);
78
+ fileType = "file";
79
+ }
80
+ const success = dryRun || !this.$fs.exists(filePath);
81
+ if (success) {
82
+ this.spinner.succeed(`${logPrefix}Cleaned ${fileType} ${displayPath}`);
83
+ }
84
+ else {
85
+ const message = color_1.color.red(`Failed to Clean ${fileType}`);
86
+ this.spinner.fail(`${logPrefix}${message} ${displayPath}`);
87
+ }
88
+ if (options === null || options === void 0 ? void 0 : options.stats) {
89
+ return { ok: success, size };
90
+ }
91
+ return { ok: success };
74
92
  }
93
+ this.$logger.trace(`${logPrefix}Path '${filePath}' not found, skipping.`);
94
+ this.spinner.info(`${logPrefix}Skipping ${displayPath} because it doesn't exist.`);
75
95
  if (options === null || options === void 0 ? void 0 : options.stats) {
76
- return { ok: success, size };
96
+ return { ok: true, size: 0 };
77
97
  }
78
- return { ok: success };
79
- }
80
- this.$logger.trace(`${logPrefix}Path '${filePath}' not found, skipping.`);
81
- this.spinner.info(`${logPrefix}Skipping ${displayPath} because it doesn't exist.`);
82
- if (options === null || options === void 0 ? void 0 : options.stats) {
83
- return { ok: true, size: 0 };
84
- }
85
- return { ok: true };
98
+ return { ok: true };
99
+ });
86
100
  }
87
101
  }
88
102
  exports.ProjectCleanupService = ProjectCleanupService;
89
103
  yok_1.injector.register("projectCleanupService", ProjectCleanupService);
104
+ //# sourceMappingURL=project-cleanup-service.js.map