nativescript 8.9.0-dev.1 → 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 (404) 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/project.d.ts +26 -0
  190. package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
  191. package/lib/detached-processes/cleanup-process.js +43 -30
  192. package/lib/detached-processes/file-log-service.js +2 -1
  193. package/lib/device-path-provider.js +35 -23
  194. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
  195. package/lib/device-sockets/ios/notification.js +4 -1
  196. package/lib/device-sockets/ios/socket-request-executor.js +42 -24
  197. package/lib/helpers/android-bundle-validator-helper.js +3 -2
  198. package/lib/helpers/deploy-command-helper.js +50 -44
  199. package/lib/helpers/key-command-helper.js +17 -6
  200. package/lib/helpers/livesync-command-helper.js +155 -137
  201. package/lib/helpers/network-connectivity-validator.js +18 -6
  202. package/lib/helpers/options-track-helper.js +19 -7
  203. package/lib/helpers/package-path-helper.js +1 -0
  204. package/lib/helpers/platform-command-helper.js +127 -101
  205. package/lib/helpers/version-validator-helper.js +1 -0
  206. package/lib/key-commands/bootstrap.js +3 -2
  207. package/lib/key-commands/index.js +205 -154
  208. package/lib/nativescript-cli-lib-bootstrap.js +4 -0
  209. package/lib/nativescript-cli-lib.js +1 -0
  210. package/lib/nativescript-cli.js +24 -6
  211. package/lib/node/pbxproj-dom-xcode.js +1 -0
  212. package/lib/node/xcode.js +1 -0
  213. package/lib/node-package-manager.js +114 -81
  214. package/lib/options.js +156 -122
  215. package/lib/package-installation-manager.js +172 -130
  216. package/lib/package-manager.js +88 -63
  217. package/lib/platform-command-param.js +16 -4
  218. package/lib/pnpm-package-manager.js +81 -59
  219. package/lib/project-data.js +13 -1
  220. package/lib/providers/project-files-provider.js +2 -1
  221. package/lib/resolvers/livesync-service-resolver.js +1 -0
  222. package/lib/services/analytics/analytics-broker-process.js +32 -19
  223. package/lib/services/analytics/analytics-broker.js +31 -17
  224. package/lib/services/analytics/analytics-service.js +210 -170
  225. package/lib/services/analytics/google-analytics-provider.js +59 -43
  226. package/lib/services/analytics-settings-service.js +37 -15
  227. package/lib/services/android/android-bundle-tool-service.js +61 -43
  228. package/lib/services/android/gradle-build-args-service.js +23 -9
  229. package/lib/services/android/gradle-build-service.js +36 -22
  230. package/lib/services/android/gradle-command-service.js +36 -22
  231. package/lib/services/android-device-debug-service.js +123 -90
  232. package/lib/services/android-plugin-build-service.js +260 -205
  233. package/lib/services/android-project-service.js +241 -129
  234. package/lib/services/android-resources-migration-service.js +71 -51
  235. package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
  236. package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
  237. package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
  238. package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
  239. package/lib/services/assets-generation/assets-generation-service.js +128 -103
  240. package/lib/services/build-artifacts-service.js +22 -10
  241. package/lib/services/build-data-service.js +1 -0
  242. package/lib/services/build-info-file-service.js +36 -20
  243. package/lib/services/cleanup-service.js +81 -48
  244. package/lib/services/cocoapods-platform-manager.js +9 -0
  245. package/lib/services/cocoapods-service.js +153 -112
  246. package/lib/services/debug-data-service.js +1 -0
  247. package/lib/services/debug-service-base.js +7 -0
  248. package/lib/services/device/device-install-app-service.js +72 -54
  249. package/lib/services/doctor-service.js +135 -101
  250. package/lib/services/extensibility-service.js +108 -81
  251. package/lib/services/files-hash-service.js +44 -26
  252. package/lib/services/hmr-status-service.js +3 -1
  253. package/lib/services/info-service.js +1 -0
  254. package/lib/services/initialize-service.js +54 -37
  255. package/lib/services/ios/export-options-plist-service.js +55 -38
  256. package/lib/services/ios/ios-signing-service.js +191 -168
  257. package/lib/services/ios/spm-service.js +70 -46
  258. package/lib/services/ios/xcodebuild-args-service.js +103 -77
  259. package/lib/services/ios/xcodebuild-command-service.js +26 -14
  260. package/lib/services/ios/xcodebuild-service.js +72 -52
  261. package/lib/services/ios-debugger-port-service.js +38 -24
  262. package/lib/services/ios-device-debug-service.js +103 -75
  263. package/lib/services/ios-entitlements-service.js +43 -31
  264. package/lib/services/ios-extensions-service.js +30 -18
  265. package/lib/services/ios-log-filter.js +20 -0
  266. package/lib/services/ios-native-target-service.js +6 -4
  267. package/lib/services/ios-project-service.js +605 -437
  268. package/lib/services/ios-provision-service.js +132 -108
  269. package/lib/services/ios-watch-app-service.js +33 -21
  270. package/lib/services/ip-service.js +55 -38
  271. package/lib/services/itmstransporter-service.js +153 -129
  272. package/lib/services/karma-execution.js +2 -0
  273. package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
  274. package/lib/services/livesync/android-device-livesync-service.js +151 -120
  275. package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
  276. package/lib/services/livesync/android-livesync-service.js +36 -14
  277. package/lib/services/livesync/android-livesync-tool.js +117 -90
  278. package/lib/services/livesync/device-livesync-service-base.js +30 -15
  279. package/lib/services/livesync/ios-device-livesync-service.js +150 -114
  280. package/lib/services/livesync/ios-livesync-service.js +60 -42
  281. package/lib/services/livesync/livesync-socket.js +1 -0
  282. package/lib/services/livesync/platform-livesync-service-base.js +124 -94
  283. package/lib/services/livesync-process-data-service.js +1 -0
  284. package/lib/services/log-parser-service.js +2 -1
  285. package/lib/services/log-source-map-service.js +56 -30
  286. package/lib/services/marking-mode-service.js +33 -17
  287. package/lib/services/metadata-filtering-service.js +1 -0
  288. package/lib/services/npm-config-service.js +5 -1
  289. package/lib/services/pacote-service.js +71 -49
  290. package/lib/services/performance-service.js +4 -2
  291. package/lib/services/platform/add-platform-service.js +119 -51
  292. package/lib/services/platform/platform-validation-service.js +34 -22
  293. package/lib/services/platform/prepare-native-platform-service.js +65 -49
  294. package/lib/services/platform-environment-requirements.js +43 -27
  295. package/lib/services/platform-project-service-base.js +1 -0
  296. package/lib/services/platforms-data-service.js +1 -0
  297. package/lib/services/plugins-service.js +168 -125
  298. package/lib/services/prepare-data-service.js +1 -0
  299. package/lib/services/project-backup-service.js +5 -1
  300. package/lib/services/project-changes-service.js +152 -124
  301. package/lib/services/project-cleanup-service.js +79 -64
  302. package/lib/services/project-config-service.js +111 -73
  303. package/lib/services/project-data-service.js +154 -108
  304. package/lib/services/project-name-service.js +44 -28
  305. package/lib/services/project-service.js +113 -84
  306. package/lib/services/project-templates-service.js +68 -52
  307. package/lib/services/qr-code-terminal-service.js +1 -0
  308. package/lib/services/require-service.js +1 -0
  309. package/lib/services/start-service.js +60 -41
  310. package/lib/services/temp-service.js +22 -8
  311. package/lib/services/terminal-spinner-service.js +28 -15
  312. package/lib/services/test-execution-service.js +79 -59
  313. package/lib/services/test-initialization-service.js +6 -2
  314. package/lib/services/timeline-profiler-service.js +2 -1
  315. package/lib/services/user-settings-service.js +1 -0
  316. package/lib/services/versions-service.js +140 -119
  317. package/lib/services/watch-ignore-list-service.js +1 -0
  318. package/lib/services/webpack/webpack-compiler-service.js +279 -215
  319. package/lib/services/xcconfig-service.js +21 -8
  320. package/lib/services/xcproj-service.js +1 -0
  321. package/lib/shared-event-bus.js +6 -0
  322. package/lib/sys-info.js +63 -45
  323. package/lib/tools/config-manipulation/config-transformer.js +21 -0
  324. package/lib/tools/node-modules/node-modules-builder.js +28 -16
  325. package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
  326. package/lib/yarn-package-manager.js +79 -59
  327. package/lib/yarn2-package-manager.js +82 -60
  328. package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
  329. package/node_modules/@npmcli/move-file/README.md +69 -0
  330. package/node_modules/@npmcli/move-file/lib/index.js +185 -0
  331. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
  342. package/node_modules/@npmcli/move-file/package.json +47 -0
  343. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  344. package/node_modules/balanced-match/LICENSE.md +21 -0
  345. package/node_modules/balanced-match/README.md +97 -0
  346. package/node_modules/balanced-match/index.js +62 -0
  347. package/node_modules/balanced-match/package.json +48 -0
  348. package/node_modules/concat-map/.travis.yml +4 -0
  349. package/node_modules/concat-map/LICENSE +18 -0
  350. package/node_modules/concat-map/README.markdown +62 -0
  351. package/node_modules/concat-map/example/map.js +6 -0
  352. package/node_modules/concat-map/index.js +13 -0
  353. package/node_modules/concat-map/package.json +43 -0
  354. package/node_modules/concat-map/test/map.js +39 -0
  355. package/node_modules/fs.realpath/LICENSE +43 -0
  356. package/node_modules/fs.realpath/README.md +33 -0
  357. package/node_modules/fs.realpath/index.js +66 -0
  358. package/node_modules/fs.realpath/old.js +303 -0
  359. package/node_modules/fs.realpath/package.json +26 -0
  360. package/node_modules/inflight/LICENSE +15 -0
  361. package/node_modules/inflight/README.md +37 -0
  362. package/node_modules/inflight/inflight.js +54 -0
  363. package/node_modules/inflight/package.json +29 -0
  364. package/node_modules/inherits/LICENSE +16 -0
  365. package/node_modules/inherits/README.md +42 -0
  366. package/node_modules/inherits/inherits.js +9 -0
  367. package/node_modules/inherits/inherits_browser.js +27 -0
  368. package/node_modules/inherits/package.json +29 -0
  369. package/node_modules/once/LICENSE +15 -0
  370. package/node_modules/once/README.md +79 -0
  371. package/node_modules/once/once.js +42 -0
  372. package/node_modules/once/package.json +33 -0
  373. package/node_modules/path-is-absolute/index.js +20 -0
  374. package/node_modules/path-is-absolute/license +21 -0
  375. package/node_modules/path-is-absolute/package.json +43 -0
  376. package/node_modules/path-is-absolute/readme.md +59 -0
  377. package/node_modules/rimraf/LICENSE +15 -0
  378. package/node_modules/rimraf/README.md +101 -0
  379. package/node_modules/rimraf/bin.js +68 -0
  380. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
  381. package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
  382. package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
  383. package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
  384. package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
  385. package/node_modules/rimraf/node_modules/glob/README.md +378 -0
  386. package/node_modules/rimraf/node_modules/glob/common.js +238 -0
  387. package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
  388. package/node_modules/rimraf/node_modules/glob/package.json +55 -0
  389. package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
  390. package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
  391. package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
  392. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
  393. package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
  394. package/node_modules/rimraf/package.json +32 -0
  395. package/node_modules/rimraf/rimraf.js +360 -0
  396. package/node_modules/stringify-package/LICENSE +13 -0
  397. package/node_modules/stringify-package/README.md +55 -0
  398. package/node_modules/stringify-package/index.js +18 -0
  399. package/node_modules/stringify-package/package.json +38 -0
  400. package/node_modules/wrappy/LICENSE +15 -0
  401. package/node_modules/wrappy/README.md +36 -0
  402. package/node_modules/wrappy/package.json +29 -0
  403. package/node_modules/wrappy/wrappy.js +33 -0
  404. package/package.json +79 -64
@@ -5,48 +5,62 @@ 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.PlatformEnvironmentRequirements = void 0;
10
19
  const helpers_1 = require("../common/helpers");
11
20
  const os_1 = require("os");
12
21
  const yok_1 = require("../common/yok");
13
22
  class PlatformEnvironmentRequirements {
14
- constructor($doctorService, $errors, $analyticsService, $injector) {
23
+ constructor($doctorService, $errors, $analyticsService,
24
+ // @ts-ignore - required by the hook helper!
25
+ $injector) {
15
26
  this.$doctorService = $doctorService;
16
27
  this.$errors = $errors;
17
28
  this.$analyticsService = $analyticsService;
18
29
  this.$injector = $injector;
19
30
  }
20
- async checkEnvironmentRequirements(input) {
21
- const { platform, projectDir, runtimeVersion } = input;
22
- const selectedOption = null;
23
- if (process.env.NS_SKIP_ENV_CHECK) {
24
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
25
- action: "Check Environment Requirements",
26
- additionalData: "Skipped: NS_SKIP_ENV_CHECK is set",
31
+ checkEnvironmentRequirements(input) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const { platform, projectDir, runtimeVersion } = input;
34
+ const selectedOption = null;
35
+ if (process.env.NS_SKIP_ENV_CHECK) {
36
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
37
+ action: "Check Environment Requirements" /* TrackActionNames.CheckEnvironmentRequirements */,
38
+ additionalData: "Skipped: NS_SKIP_ENV_CHECK is set",
39
+ });
40
+ return {
41
+ canExecute: true,
42
+ selectedOption,
43
+ };
44
+ }
45
+ const canExecute = yield this.$doctorService.canExecuteLocalBuild({
46
+ platform,
47
+ projectDir,
48
+ runtimeVersion,
49
+ forceCheck: input.forceCheck,
27
50
  });
51
+ if (!canExecute) {
52
+ // if (!isInteractive()) {
53
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
54
+ action: "Check Environment Requirements" /* TrackActionNames.CheckEnvironmentRequirements */,
55
+ additionalData: "Non-interactive terminal, unable to execute local builds.",
56
+ });
57
+ this.fail(this.getNonInteractiveConsoleMessage(platform));
58
+ }
28
59
  return {
29
- canExecute: true,
60
+ canExecute,
30
61
  selectedOption,
31
62
  };
32
- }
33
- const canExecute = await this.$doctorService.canExecuteLocalBuild({
34
- platform,
35
- projectDir,
36
- runtimeVersion,
37
- forceCheck: input.forceCheck,
38
63
  });
39
- if (!canExecute) {
40
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
41
- action: "Check Environment Requirements",
42
- additionalData: "Non-interactive terminal, unable to execute local builds.",
43
- });
44
- this.fail(this.getNonInteractiveConsoleMessage(platform));
45
- }
46
- return {
47
- canExecute,
48
- selectedOption,
49
- };
50
64
  }
51
65
  fail(message) {
52
66
  this.$errors.fail({ formatStr: message, printOnStdout: true });
@@ -58,6 +72,7 @@ class PlatformEnvironmentRequirements {
58
72
  ].join(os_1.EOL);
59
73
  }
60
74
  getEnvVerificationMessage(platform) {
75
+ // map process.platform to OS name used in docs
61
76
  const os = {
62
77
  linux: "linux",
63
78
  win32: "windows",
@@ -70,9 +85,10 @@ class PlatformEnvironmentRequirements {
70
85
  `https://docs.nativescript.org/setup/${os}${anchor}.`);
71
86
  }
72
87
  }
73
- exports.PlatformEnvironmentRequirements = PlatformEnvironmentRequirements;
74
88
  PlatformEnvironmentRequirements.MISSING_LOCAL_SETUP_MESSAGE = "Your environment is not configured properly and you will not be able to execute local builds.";
75
89
  __decorate([
76
90
  (0, helpers_1.hook)("checkEnvironment")
77
91
  ], PlatformEnvironmentRequirements.prototype, "checkEnvironmentRequirements", null);
92
+ exports.PlatformEnvironmentRequirements = PlatformEnvironmentRequirements;
78
93
  yok_1.injector.register("platformEnvironmentRequirements", PlatformEnvironmentRequirements);
94
+ //# sourceMappingURL=platform-environment-requirements.js.map
@@ -30,3 +30,4 @@ class PlatformProjectServiceBase extends events_1.EventEmitter {
30
30
  }
31
31
  }
32
32
  exports.PlatformProjectServiceBase = PlatformProjectServiceBase;
33
+ //# sourceMappingURL=platform-project-service-base.js.map
@@ -29,3 +29,4 @@ class PlatformsDataService {
29
29
  }
30
30
  exports.PlatformsDataService = PlatformsDataService;
31
31
  yok_1.injector.register("platformsDataService", PlatformsDataService);
32
+ //# sourceMappingURL=platforms-data-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.PluginsService = void 0;
4
13
  const path = require("path");
@@ -42,46 +51,51 @@ class PluginsService {
42
51
  return key;
43
52
  });
44
53
  }
45
- async add(plugin, projectData) {
46
- await this.ensure(projectData);
47
- const possiblePackageName = path.resolve(plugin);
48
- if (possiblePackageName.indexOf(".tgz") !== -1 &&
49
- this.$fs.exists(possiblePackageName)) {
50
- plugin = possiblePackageName;
51
- }
52
- const name = (await this.$packageManager.install(plugin, projectData.projectDir, this.npmInstallOptions)).name;
53
- const pathToRealNpmPackageJson = this.getPackageJsonFilePathForModule(name, projectData.projectDir);
54
- const realNpmPackageJson = this.$fs.readJson(pathToRealNpmPackageJson);
55
- if (realNpmPackageJson.nativescript) {
56
- const pluginData = this.convertToPluginData(realNpmPackageJson, projectData.projectDir);
57
- const action = async (pluginDestinationPath, platform, platformData) => {
58
- this.isPluginDataValidForPlatform(pluginData, platform, projectData);
59
- };
60
- await this.executeForAllInstalledPlatforms(action, projectData);
61
- this.$logger.info(`Successfully installed plugin ${realNpmPackageJson.name}.`);
62
- }
63
- else {
64
- await this.$packageManager.uninstall(realNpmPackageJson.name, { save: true }, projectData.projectDir);
65
- this.$errors.fail(`${plugin} is not a valid NativeScript plugin. Verify that the plugin package.json file contains a nativescript key and try again.`);
66
- }
54
+ add(plugin, projectData) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ yield this.ensure(projectData);
57
+ const possiblePackageName = path.resolve(plugin);
58
+ if (possiblePackageName.indexOf(".tgz") !== -1 &&
59
+ this.$fs.exists(possiblePackageName)) {
60
+ plugin = possiblePackageName;
61
+ }
62
+ const name = (yield this.$packageManager.install(plugin, projectData.projectDir, this.npmInstallOptions)).name;
63
+ const pathToRealNpmPackageJson = this.getPackageJsonFilePathForModule(name, projectData.projectDir);
64
+ const realNpmPackageJson = this.$fs.readJson(pathToRealNpmPackageJson);
65
+ if (realNpmPackageJson.nativescript) {
66
+ const pluginData = this.convertToPluginData(realNpmPackageJson, projectData.projectDir);
67
+ // Validate
68
+ const action = (pluginDestinationPath, platform, platformData) => __awaiter(this, void 0, void 0, function* () {
69
+ this.isPluginDataValidForPlatform(pluginData, platform, projectData);
70
+ });
71
+ yield this.executeForAllInstalledPlatforms(action, projectData);
72
+ this.$logger.info(`Successfully installed plugin ${realNpmPackageJson.name}.`);
73
+ }
74
+ else {
75
+ yield this.$packageManager.uninstall(realNpmPackageJson.name, { save: true }, projectData.projectDir);
76
+ this.$errors.fail(`${plugin} is not a valid NativeScript plugin. Verify that the plugin package.json file contains a nativescript key and try again.`);
77
+ }
78
+ });
67
79
  }
68
- async remove(pluginName, projectData) {
69
- const removePluginNativeCodeAction = async (modulesDestinationPath, platform, platformData) => {
70
- const pluginData = this.convertToPluginData(this.getNodeModuleData(pluginName, projectData.projectDir), projectData.projectDir);
71
- await platformData.platformProjectService.removePluginNativeCode(pluginData, projectData);
72
- };
73
- await this.executeForAllInstalledPlatforms(removePluginNativeCodeAction, projectData);
74
- await this.executeNpmCommand(PluginsService.UNINSTALL_COMMAND_NAME, pluginName, projectData);
75
- let showMessage = true;
76
- const action = async (modulesDestinationPath, platform, platformData) => {
77
- shelljs.rm("-rf", path.join(modulesDestinationPath, pluginName));
78
- this.$logger.info(`Successfully removed plugin ${pluginName} for ${platform}.`);
79
- showMessage = false;
80
- };
81
- await this.executeForAllInstalledPlatforms(action, projectData);
82
- if (showMessage) {
83
- this.$logger.info(`Successfully removed plugin ${pluginName}`);
84
- }
80
+ remove(pluginName, projectData) {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const removePluginNativeCodeAction = (modulesDestinationPath, platform, platformData) => __awaiter(this, void 0, void 0, function* () {
83
+ const pluginData = this.convertToPluginData(this.getNodeModuleData(pluginName, projectData.projectDir), projectData.projectDir);
84
+ yield platformData.platformProjectService.removePluginNativeCode(pluginData, projectData);
85
+ });
86
+ yield this.executeForAllInstalledPlatforms(removePluginNativeCodeAction, projectData);
87
+ yield this.executeNpmCommand(PluginsService.UNINSTALL_COMMAND_NAME, pluginName, projectData);
88
+ let showMessage = true;
89
+ const action = (modulesDestinationPath, platform, platformData) => __awaiter(this, void 0, void 0, function* () {
90
+ shelljs.rm("-rf", path.join(modulesDestinationPath, pluginName));
91
+ this.$logger.info(`Successfully removed plugin ${pluginName} for ${platform}.`);
92
+ showMessage = false;
93
+ });
94
+ yield this.executeForAllInstalledPlatforms(action, projectData);
95
+ if (showMessage) {
96
+ this.$logger.info(`Successfully removed plugin ${pluginName}`);
97
+ }
98
+ });
85
99
  }
86
100
  addToPackageJson(plugin, version, isDev, projectDir) {
87
101
  const packageJsonPath = this.getPackageJsonFilePath(projectDir);
@@ -105,56 +119,65 @@ class PluginsService {
105
119
  this.$fs.writeJson(packageJsonPath, result.packageJsonContent);
106
120
  }
107
121
  }
108
- async preparePluginNativeCode({ pluginData, platform, projectData, }) {
109
- const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
110
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(platform);
111
- if (this.$fs.exists(pluginPlatformsFolderPath)) {
112
- const pathToPluginsBuildFile = path.join(platformData.projectRoot, constants.PLUGINS_BUILD_DATA_FILENAME);
113
- const allPluginsNativeHashes = this.getAllPluginsNativeHashes(pathToPluginsBuildFile);
114
- const oldPluginNativeHashes = allPluginsNativeHashes[pluginData.name];
115
- const currentPluginNativeHashes = await this.getPluginNativeHashes(pluginPlatformsFolderPath);
116
- if (!oldPluginNativeHashes ||
117
- this.$filesHashService.hasChangesInShasums(oldPluginNativeHashes, currentPluginNativeHashes)) {
118
- await platformData.platformProjectService.preparePluginNativeCode(pluginData, projectData);
119
- const updatedPluginNativeHashes = await this.getPluginNativeHashes(pluginPlatformsFolderPath);
120
- this.setPluginNativeHashes({
121
- pathToPluginsBuildFile,
122
- pluginData,
123
- currentPluginNativeHashes: updatedPluginNativeHashes,
124
- allPluginsNativeHashes,
125
- });
122
+ preparePluginNativeCode({ pluginData, platform, projectData, }) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
125
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(platform);
126
+ if (this.$fs.exists(pluginPlatformsFolderPath)) {
127
+ const pathToPluginsBuildFile = path.join(platformData.projectRoot, constants.PLUGINS_BUILD_DATA_FILENAME);
128
+ const allPluginsNativeHashes = this.getAllPluginsNativeHashes(pathToPluginsBuildFile);
129
+ const oldPluginNativeHashes = allPluginsNativeHashes[pluginData.name];
130
+ const currentPluginNativeHashes = yield this.getPluginNativeHashes(pluginPlatformsFolderPath);
131
+ if (!oldPluginNativeHashes ||
132
+ this.$filesHashService.hasChangesInShasums(oldPluginNativeHashes, currentPluginNativeHashes)) {
133
+ yield platformData.platformProjectService.preparePluginNativeCode(pluginData, projectData);
134
+ const updatedPluginNativeHashes = yield this.getPluginNativeHashes(pluginPlatformsFolderPath);
135
+ this.setPluginNativeHashes({
136
+ pathToPluginsBuildFile,
137
+ pluginData,
138
+ currentPluginNativeHashes: updatedPluginNativeHashes,
139
+ allPluginsNativeHashes,
140
+ });
141
+ }
126
142
  }
127
- }
143
+ });
128
144
  }
129
- async ensureAllDependenciesAreInstalled(projectData) {
130
- const packageJsonContent = this.$fs.readJson(this.getPackageJsonFilePath(projectData.projectDir));
131
- const allDependencies = _.keys(packageJsonContent.dependencies).concat(_.keys(packageJsonContent.devDependencies));
132
- const notInstalledDependencies = allDependencies
133
- .map((dep) => {
134
- this.$logger.trace(`Checking if ${dep} is installed...`);
135
- const pathToPackage = (0, package_path_helper_1.resolvePackagePath)(dep, {
136
- paths: [projectData.projectDir],
137
- });
138
- if (pathToPackage) {
139
- return false;
145
+ ensureAllDependenciesAreInstalled(projectData) {
146
+ return __awaiter(this, void 0, void 0, function* () {
147
+ const packageJsonContent = this.$fs.readJson(this.getPackageJsonFilePath(projectData.projectDir));
148
+ const allDependencies = _.keys(packageJsonContent.dependencies).concat(_.keys(packageJsonContent.devDependencies));
149
+ const notInstalledDependencies = allDependencies
150
+ .map((dep) => {
151
+ this.$logger.trace(`Checking if ${dep} is installed...`);
152
+ const pathToPackage = (0, package_path_helper_1.resolvePackagePath)(dep, {
153
+ paths: [projectData.projectDir],
154
+ });
155
+ if (pathToPackage) {
156
+ // return false if the dependency is installed - we'll filter out boolean values
157
+ // and end up with an array of dep names that are not installed if we end up
158
+ // inside the catch block.
159
+ return false;
160
+ }
161
+ this.$logger.trace(`${dep} is not installed, or couldn't be found`);
162
+ return dep;
163
+ })
164
+ .filter(Boolean);
165
+ if (this.$options.force || notInstalledDependencies.length) {
166
+ this.$logger.trace("Npm install will be called from CLI. Force option is: ", this.$options.force, " Not installed dependencies are: ", notInstalledDependencies);
167
+ yield this.$packageManager.install(projectData.projectDir, projectData.projectDir, {
168
+ disableNpmInstall: this.$options.disableNpmInstall,
169
+ frameworkPath: this.$options.frameworkPath,
170
+ ignoreScripts: this.$options.ignoreScripts,
171
+ path: this.$options.path,
172
+ });
140
173
  }
141
- this.$logger.trace(`${dep} is not installed, or couldn't be found`);
142
- return dep;
143
- })
144
- .filter(Boolean);
145
- if (this.$options.force || notInstalledDependencies.length) {
146
- this.$logger.trace("Npm install will be called from CLI. Force option is: ", this.$options.force, " Not installed dependencies are: ", notInstalledDependencies);
147
- await this.$packageManager.install(projectData.projectDir, projectData.projectDir, {
148
- disableNpmInstall: this.$options.disableNpmInstall,
149
- frameworkPath: this.$options.frameworkPath,
150
- ignoreScripts: this.$options.ignoreScripts,
151
- path: this.$options.path,
152
- });
153
- }
174
+ });
154
175
  }
155
- async getAllInstalledPlugins(projectData) {
156
- const nodeModules = (await this.getAllInstalledModules(projectData)).map((nodeModuleData) => this.convertToPluginData(nodeModuleData, projectData.projectDir));
157
- return _.filter(nodeModules, (nodeModuleData) => nodeModuleData && nodeModuleData.isPlugin);
176
+ getAllInstalledPlugins(projectData) {
177
+ return __awaiter(this, void 0, void 0, function* () {
178
+ const nodeModules = (yield this.getAllInstalledModules(projectData)).map((nodeModuleData) => this.convertToPluginData(nodeModuleData, projectData.projectDir));
179
+ return _.filter(nodeModules, (nodeModuleData) => nodeModuleData && nodeModuleData.isPlugin);
180
+ });
158
181
  }
159
182
  getAllProductionPlugins(projectData, platform, dependencies) {
160
183
  dependencies =
@@ -168,6 +191,9 @@ class PluginsService {
168
191
  return productionPlugins
169
192
  .map((plugin) => this.convertToPluginData(plugin, projectData.projectDir))
170
193
  .filter((item, idx, self) => {
194
+ // Filter out duplicates to speed up build times by not building the same dependency
195
+ // multiple times. One possible downside is that if there are different versions
196
+ // of the same native dependency only the first one in the array will be built
171
197
  return self.findIndex((p) => p.name === item.name) === idx;
172
198
  });
173
199
  }
@@ -199,9 +225,11 @@ class PluginsService {
199
225
  const dependenciesGroupedByName = _.groupBy(productionDependencies, (p) => p.name);
200
226
  _.each(dependenciesGroupedByName, (dependencyOccurrences, dependencyName) => {
201
227
  if (dependencyOccurrences.length > 1) {
228
+ // the dependency exists multiple times in node_modules
202
229
  const dependencyOccurrencesGroupedByVersion = _.groupBy(dependencyOccurrences, (g) => g.version);
203
230
  const versions = _.keys(dependencyOccurrencesGroupedByVersion);
204
231
  if (versions.length === 1) {
232
+ // all dependencies with this name have the same version
205
233
  this.$logger.trace(`Detected same versions (${_.first(versions)}) of the ${dependencyName} installed at locations: ${_.map(dependencyOccurrences, (d) => d.directory).join(", ")}`);
206
234
  }
207
235
  else {
@@ -218,11 +246,7 @@ class PluginsService {
218
246
  const contents = this.$fs.readDirectory(pathToPlatforms);
219
247
  _.each(contents, (file) => {
220
248
  if (path.extname(file) === ".framework") {
221
- dependenciesWithFrameworks.push({
222
- ...d,
223
- frameworkName: path.basename(file),
224
- frameworkLocation: path.join(pathToPlatforms, file),
225
- });
249
+ dependenciesWithFrameworks.push(Object.assign(Object.assign({}, d), { frameworkName: path.basename(file), frameworkLocation: path.join(pathToPlatforms, file) }));
226
250
  }
227
251
  });
228
252
  }
@@ -231,9 +255,11 @@ class PluginsService {
231
255
  const dependenciesGroupedByFrameworkName = _.groupBy(dependenciesWithFrameworks, (d) => d.frameworkName);
232
256
  _.each(dependenciesGroupedByFrameworkName, (dependencyOccurrences, frameworkName) => {
233
257
  if (dependencyOccurrences.length > 1) {
258
+ // A framework exists multiple times in node_modules
234
259
  const groupedByName = _.groupBy(dependencyOccurrences, (d) => d.name);
235
260
  const pluginsNames = _.keys(groupedByName);
236
261
  if (pluginsNames.length > 1) {
262
+ // fail - the same framework is installed by different dependencies.
237
263
  const locations = dependencyOccurrences.map((d) => d.frameworkLocation);
238
264
  let msg = `Detected the framework ${frameworkName} is installed from multiple plugins at locations:\n${locations.join("\n")}\n`;
239
265
  msg += this.getHelpMessage(projectDir);
@@ -243,6 +269,7 @@ class PluginsService {
243
269
  const dependencyOccurrencesGroupedByVersion = _.groupBy(dependencyOccurrences, (g) => g.version);
244
270
  const versions = _.keys(dependencyOccurrencesGroupedByVersion);
245
271
  if (versions.length === 1) {
272
+ // all dependencies with this name have the same version
246
273
  this.$logger.warn(`Detected the framework ${frameworkName} is installed multiple times from the same versions of plugin (${_.first(versions)}) at locations: ${_.map(dependencyOccurrences, (d) => d.directory).join(", ")}`);
247
274
  const selectedPackage = _.minBy(dependencyOccurrences, (d) => d.depth);
248
275
  this.$logger.info(color_1.color.green(`CLI will use only the native code from '${selectedPackage.directory}'.`));
@@ -294,7 +321,7 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
294
321
  pluginData.isPlugin = !!cacheData.nativescript;
295
322
  pluginData.pluginPlatformsFolderPath = (platform) => {
296
323
  if (this.$mobileHelper.isvisionOSPlatform(platform)) {
297
- platform = "ios";
324
+ platform = "ios" /* constants.PlatformTypes.ios */;
298
325
  }
299
326
  return path.join(pluginData.fullPath, "platforms", platform.toLowerCase());
300
327
  };
@@ -351,6 +378,7 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
351
378
  return _.keys(require(packageJsonFilePath).dependencies);
352
379
  }
353
380
  getNodeModuleData(module, projectDir) {
381
+ // module can be modulePath or moduleName
354
382
  if (!this.$fs.exists(module) || path.basename(module) !== "package.json") {
355
383
  module = this.getPackageJsonFilePathForModule(module, projectDir);
356
384
  }
@@ -363,40 +391,50 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
363
391
  nativescript: data.nativescript,
364
392
  };
365
393
  }
366
- async ensure(projectData) {
367
- await this.ensureAllDependenciesAreInstalled(projectData);
368
- this.$fs.ensureDirectoryExists(this.getNodeModulesPath(projectData.projectDir));
394
+ ensure(projectData) {
395
+ return __awaiter(this, void 0, void 0, function* () {
396
+ yield this.ensureAllDependenciesAreInstalled(projectData);
397
+ this.$fs.ensureDirectoryExists(this.getNodeModulesPath(projectData.projectDir));
398
+ });
369
399
  }
370
- async getAllInstalledModules(projectData) {
371
- await this.ensure(projectData);
372
- const nodeModules = this.getDependencies(projectData.projectDir);
373
- return _.map(nodeModules, (nodeModuleName) => this.getNodeModuleData(nodeModuleName, projectData.projectDir));
400
+ getAllInstalledModules(projectData) {
401
+ return __awaiter(this, void 0, void 0, function* () {
402
+ yield this.ensure(projectData);
403
+ const nodeModules = this.getDependencies(projectData.projectDir);
404
+ return _.map(nodeModules, (nodeModuleName) => this.getNodeModuleData(nodeModuleName, projectData.projectDir));
405
+ });
374
406
  }
375
- async executeNpmCommand(npmCommandName, npmCommandArguments, projectData) {
376
- if (npmCommandName === PluginsService.INSTALL_COMMAND_NAME) {
377
- await this.$packageManager.install(npmCommandArguments, projectData.projectDir, this.npmInstallOptions);
378
- }
379
- else if (npmCommandName === PluginsService.UNINSTALL_COMMAND_NAME) {
380
- await this.$packageManager.uninstall(npmCommandArguments, PluginsService.NPM_CONFIG, projectData.projectDir);
381
- }
382
- return this.parseNpmCommandResult(npmCommandArguments);
407
+ executeNpmCommand(npmCommandName, npmCommandArguments, projectData) {
408
+ return __awaiter(this, void 0, void 0, function* () {
409
+ if (npmCommandName === PluginsService.INSTALL_COMMAND_NAME) {
410
+ yield this.$packageManager.install(npmCommandArguments, projectData.projectDir, this.npmInstallOptions);
411
+ }
412
+ else if (npmCommandName === PluginsService.UNINSTALL_COMMAND_NAME) {
413
+ yield this.$packageManager.uninstall(npmCommandArguments, PluginsService.NPM_CONFIG, projectData.projectDir);
414
+ }
415
+ return this.parseNpmCommandResult(npmCommandArguments);
416
+ });
383
417
  }
384
418
  parseNpmCommandResult(npmCommandResult) {
385
- return npmCommandResult.split("@")[0];
386
- }
387
- async executeForAllInstalledPlatforms(action, projectData) {
388
- const availablePlatforms = this.$mobileHelper.platformNames.map((p) => p.toLowerCase());
389
- for (const platform of availablePlatforms) {
390
- const isPlatformInstalled = this.$fs.exists(path.join(projectData.platformsDir, platform.toLowerCase()));
391
- if (isPlatformInstalled) {
392
- const platformData = this.$platformsDataService.getPlatformData(platform.toLowerCase(), projectData);
393
- const pluginDestinationPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, "tns_modules");
394
- await action(pluginDestinationPath, platform.toLowerCase(), platformData);
419
+ return npmCommandResult.split("@")[0]; // returns plugin name
420
+ }
421
+ executeForAllInstalledPlatforms(action, projectData) {
422
+ return __awaiter(this, void 0, void 0, function* () {
423
+ const availablePlatforms = this.$mobileHelper.platformNames.map((p) => p.toLowerCase());
424
+ for (const platform of availablePlatforms) {
425
+ const isPlatformInstalled = this.$fs.exists(path.join(projectData.platformsDir, platform.toLowerCase()));
426
+ if (isPlatformInstalled) {
427
+ const platformData = this.$platformsDataService.getPlatformData(platform.toLowerCase(), projectData);
428
+ const pluginDestinationPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, "tns_modules");
429
+ yield action(pluginDestinationPath, platform.toLowerCase(), platformData);
430
+ }
395
431
  }
396
- }
432
+ });
397
433
  }
398
434
  getInstalledFrameworkVersion(platform, projectData) {
399
435
  const runtimePackage = this.$projectDataService.getRuntimePackage(projectData.projectDir, platform);
436
+ // const platformData = this.$platformsDataService.getPlatformData(platform, projectData);
437
+ // const frameworkData = this.$projectDataService.getNSValue(projectData.projectDir, platformData.frameworkPackageName);
400
438
  return runtimePackage.version;
401
439
  }
402
440
  isPluginDataValidForPlatform(pluginData, platform, projectData) {
@@ -416,16 +454,19 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
416
454
  }
417
455
  return isValid;
418
456
  }
419
- async getPluginNativeHashes(pluginPlatformsDir) {
420
- let data = {};
421
- if (this.$fs.exists(pluginPlatformsDir)) {
422
- const pluginNativeDataFiles = this.$fs.enumerateFilesInDirectorySync(pluginPlatformsDir);
423
- data = await this.$filesHashService.generateHashes(pluginNativeDataFiles);
424
- }
425
- return data;
457
+ getPluginNativeHashes(pluginPlatformsDir) {
458
+ return __awaiter(this, void 0, void 0, function* () {
459
+ let data = {};
460
+ if (this.$fs.exists(pluginPlatformsDir)) {
461
+ const pluginNativeDataFiles = this.$fs.enumerateFilesInDirectorySync(pluginPlatformsDir);
462
+ data = yield this.$filesHashService.generateHashes(pluginNativeDataFiles);
463
+ }
464
+ return data;
465
+ });
426
466
  }
427
467
  getAllPluginsNativeHashes(pathToPluginsBuildFile) {
428
468
  if (this.$options.hostProjectPath) {
469
+ // TODO: force rebuild plugins for now until we decide where to put .ns-plugins-build-data.json when embedding
429
470
  return {};
430
471
  }
431
472
  let data = {};
@@ -436,6 +477,7 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
436
477
  }
437
478
  setPluginNativeHashes(opts) {
438
479
  if (this.$options.hostProjectPath) {
480
+ // TODO: force rebuild plugins for now until we decide where to put .ns-plugins-build-data.json when embedding
439
481
  return;
440
482
  }
441
483
  opts.allPluginsNativeHashes[opts.pluginData.name] =
@@ -443,7 +485,6 @@ This framework comes from ${dependencyName} plugin, which is installed multiple
443
485
  this.$fs.writeJson(opts.pathToPluginsBuildFile, opts.allPluginsNativeHashes);
444
486
  }
445
487
  }
446
- exports.PluginsService = PluginsService;
447
488
  PluginsService.INSTALL_COMMAND_NAME = "install";
448
489
  PluginsService.UNINSTALL_COMMAND_NAME = "uninstall";
449
490
  PluginsService.NPM_CONFIG = {
@@ -455,4 +496,6 @@ PluginsService.LOCK_FILES = [
455
496
  "yarn.lock",
456
497
  "pnpm-lock.yaml",
457
498
  ];
499
+ exports.PluginsService = PluginsService;
458
500
  yok_1.injector.register("pluginsService", PluginsService);
501
+ //# sourceMappingURL=plugins-service.js.map
@@ -19,3 +19,4 @@ class PrepareDataService {
19
19
  }
20
20
  exports.PrepareDataService = PrepareDataService;
21
21
  yok_1.injector.register("prepareDataService", PrepareDataService);
22
+ //# sourceMappingURL=prepare-data-service.js.map
@@ -22,7 +22,6 @@ class ProjectBackupService {
22
22
  return backup.restore();
23
23
  }
24
24
  }
25
- exports.ProjectBackupService = ProjectBackupService;
26
25
  ProjectBackupService.Backup = class Backup {
27
26
  constructor($super, name, pathsToBackup = [], basePath = $super.$projectHelper.projectDir) {
28
27
  this.$super = $super;
@@ -47,6 +46,7 @@ ProjectBackupService.Backup = class Backup {
47
46
  backedUpPaths.push(pathToBackup);
48
47
  }
49
48
  }
49
+ // create backup.json
50
50
  this.$super.$fs.writeJson(path.resolve(this.backupDir, "_backup.json"), {
51
51
  name: this.name,
52
52
  paths: backedUpPaths,
@@ -67,6 +67,7 @@ ProjectBackupService.Backup = class Backup {
67
67
  }
68
68
  }
69
69
  this.$super.$logger.trace(backupData);
70
+ // restore files
70
71
  return this;
71
72
  }
72
73
  isUpToDate() {
@@ -76,6 +77,7 @@ ProjectBackupService.Backup = class Backup {
76
77
  }
77
78
  for (const pathToBackup of backupData.paths) {
78
79
  const sourcePath = path.resolve(this.backupDir, pathToBackup);
80
+ // if any of the files don't exist the backup is not up-to-date
79
81
  if (!this.$super.$fs.exists(sourcePath)) {
80
82
  return false;
81
83
  }
@@ -111,4 +113,6 @@ ProjectBackupService.Backup = class Backup {
111
113
  return this.$super.$fs.readJson(backupJSONPath);
112
114
  }
113
115
  };
116
+ exports.ProjectBackupService = ProjectBackupService;
114
117
  yok_1.injector.register("projectBackupService", ProjectBackupService);
118
+ //# sourceMappingURL=project-backup-service.js.map