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,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.DoctorService = void 0;
10
19
  const os_1 = require("os");
@@ -35,103 +44,116 @@ class DoctorService {
35
44
  this.$versionsService = $versionsService;
36
45
  this.$settingsService = $settingsService;
37
46
  }
38
- async printWarnings(configOptions) {
39
- configOptions = configOptions || {};
40
- const getInfosData = {
41
- projectDir: configOptions.projectDir,
42
- androidRuntimeVersion: configOptions.runtimeVersion,
43
- platform: configOptions.platform,
44
- };
45
- const infos = await this.$terminalSpinnerService.execute({
46
- text: `Getting environment information ${os_1.EOL}`,
47
- }, () => this.getInfos({ forceCheck: configOptions.forceCheck }, getInfosData));
48
- const warnings = infos.filter((info) => info.type === doctor_1.constants.WARNING_TYPE_NAME);
49
- const hasWarnings = warnings.length > 0;
50
- const hasAndroidWarnings = warnings.filter((warning) => _.includes(warning.platforms, doctor_1.constants.ANDROID_PLATFORM_NAME)).length > 0;
51
- if (hasAndroidWarnings) {
52
- this.printPackageManagerTip();
53
- }
54
- if (!configOptions || configOptions.trackResult) {
55
- }
56
- if (hasWarnings) {
57
- this.$logger.info("There seem to be issues with your configuration.");
58
- this.$fs.deleteFile(this.jsonFileSettingsPath);
59
- }
60
- else {
61
- this.$logger.info(color_1.color.bold("No issues were detected."));
62
- await this.$jsonFileSettingsService.saveSetting(this.getKeyForConfiguration(getInfosData), infos);
63
- this.printInfosCore(infos);
64
- }
65
- try {
66
- await this.$versionsService.printVersionsInformation(configOptions.platform);
67
- }
68
- catch (err) {
69
- this.$logger.error("Cannot get the latest versions information from npm. Please try again later.");
70
- }
71
- this.checkForDeprecatedShortImportsInAppDir(configOptions.projectDir);
72
- await this.$injector
73
- .resolve("platformEnvironmentRequirements")
74
- .checkEnvironmentRequirements({
75
- platform: configOptions.platform,
76
- projectDir: configOptions.projectDir,
77
- runtimeVersion: configOptions.runtimeVersion,
78
- options: configOptions.options,
47
+ printWarnings(configOptions) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ configOptions = configOptions || {};
50
+ const getInfosData = {
51
+ projectDir: configOptions.projectDir,
52
+ androidRuntimeVersion: configOptions.runtimeVersion,
53
+ platform: configOptions.platform,
54
+ };
55
+ const infos = yield this.$terminalSpinnerService.execute({
56
+ text: `Getting environment information ${os_1.EOL}`,
57
+ }, () => this.getInfos({ forceCheck: configOptions.forceCheck }, getInfosData));
58
+ const warnings = infos.filter((info) => info.type === doctor_1.constants.WARNING_TYPE_NAME);
59
+ const hasWarnings = warnings.length > 0;
60
+ const hasAndroidWarnings = warnings.filter((warning) => _.includes(warning.platforms, doctor_1.constants.ANDROID_PLATFORM_NAME)).length > 0;
61
+ if (hasAndroidWarnings) {
62
+ this.printPackageManagerTip();
63
+ }
64
+ if (!configOptions || configOptions.trackResult) {
65
+ // TODO(Analytics): Consider sending this information to Google Analytics
66
+ // await this.$analyticsService.track("DoctorEnvironmentSetup", hasWarnings ? "incorrect" : "correct");
67
+ }
68
+ if (hasWarnings) {
69
+ this.$logger.info("There seem to be issues with your configuration.");
70
+ // cleanup the cache file as there seems to be issues with the current config
71
+ // all projects need to be rechecked
72
+ this.$fs.deleteFile(this.jsonFileSettingsPath);
73
+ }
74
+ else {
75
+ this.$logger.info(color_1.color.bold("No issues were detected."));
76
+ yield this.$jsonFileSettingsService.saveSetting(this.getKeyForConfiguration(getInfosData), infos);
77
+ this.printInfosCore(infos);
78
+ }
79
+ try {
80
+ yield this.$versionsService.printVersionsInformation(configOptions.platform);
81
+ }
82
+ catch (err) {
83
+ this.$logger.error("Cannot get the latest versions information from npm. Please try again later.");
84
+ }
85
+ // todo: check for deprecated imports from `tns-core-modules`
86
+ this.checkForDeprecatedShortImportsInAppDir(configOptions.projectDir);
87
+ yield this.$injector
88
+ .resolve("platformEnvironmentRequirements")
89
+ .checkEnvironmentRequirements({
90
+ platform: configOptions.platform,
91
+ projectDir: configOptions.projectDir,
92
+ runtimeVersion: configOptions.runtimeVersion,
93
+ options: configOptions.options,
94
+ });
79
95
  });
80
96
  }
81
- async runSetupScript() {
82
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
83
- action: "Run Setup Script",
84
- additionalData: "Starting",
85
- });
86
- if (this.$hostInfo.isLinux) {
87
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
88
- action: "Run Setup Script",
89
- additionalData: "Skipped as OS is Linux",
97
+ runSetupScript() {
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
100
+ action: "Run Setup Script" /* TrackActionNames.RunSetupScript */,
101
+ additionalData: "Starting",
102
+ });
103
+ if (this.$hostInfo.isLinux) {
104
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
105
+ action: "Run Setup Script" /* TrackActionNames.RunSetupScript */,
106
+ additionalData: "Skipped as OS is Linux",
107
+ });
108
+ return;
109
+ }
110
+ this.$logger.info("Running the setup script to try and automatically configure your environment.");
111
+ if (this.$hostInfo.isDarwin) {
112
+ yield this.runSetupScriptCore(DoctorService.DarwinSetupScriptLocation, []);
113
+ }
114
+ if (this.$hostInfo.isWindows) {
115
+ yield this.runSetupScriptCore(DoctorService.WindowsSetupScriptExecutable, DoctorService.WindowsSetupScriptArguments);
116
+ }
117
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
118
+ action: "Run Setup Script" /* TrackActionNames.RunSetupScript */,
119
+ additionalData: "Finished",
90
120
  });
91
- return;
92
- }
93
- this.$logger.info("Running the setup script to try and automatically configure your environment.");
94
- if (this.$hostInfo.isDarwin) {
95
- await this.runSetupScriptCore(DoctorService.DarwinSetupScriptLocation, []);
96
- }
97
- if (this.$hostInfo.isWindows) {
98
- await this.runSetupScriptCore(DoctorService.WindowsSetupScriptExecutable, DoctorService.WindowsSetupScriptArguments);
99
- }
100
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
101
- action: "Run Setup Script",
102
- additionalData: "Finished",
103
121
  });
104
122
  }
105
- async canExecuteLocalBuild(configuration) {
106
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
107
- action: "Check Local Build Setup",
108
- additionalData: "Starting",
109
- });
110
- const sysInfoConfig = {
111
- platform: configuration.platform,
112
- projectDir: configuration.projectDir,
113
- androidRuntimeVersion: configuration.runtimeVersion,
114
- };
115
- const infos = await this.getInfos({ forceCheck: configuration && configuration.forceCheck }, sysInfoConfig);
116
- const warnings = this.filterInfosByType(infos, doctor_1.constants.WARNING_TYPE_NAME);
117
- const hasWarnings = warnings.length > 0;
118
- if (hasWarnings) {
119
- this.$fs.deleteFile(this.jsonFileSettingsPath);
120
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
121
- action: "Check Local Build Setup",
122
- additionalData: `Warnings:${warnings.map((w) => w.message).join("__")}`,
123
+ canExecuteLocalBuild(configuration) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
126
+ action: "Check Local Build Setup" /* TrackActionNames.CheckLocalBuildSetup */,
127
+ additionalData: "Starting",
123
128
  });
124
- this.printInfosCore(infos);
125
- }
126
- else {
127
- infos.map((info) => this.$logger.trace(info.message));
128
- await this.$jsonFileSettingsService.saveSetting(this.getKeyForConfiguration(sysInfoConfig), infos);
129
- }
130
- await this.$analyticsService.trackEventActionInGoogleAnalytics({
131
- action: "Check Local Build Setup",
132
- additionalData: `Finished: Is setup correct: ${!hasWarnings}`,
129
+ const sysInfoConfig = {
130
+ platform: configuration.platform,
131
+ projectDir: configuration.projectDir,
132
+ androidRuntimeVersion: configuration.runtimeVersion,
133
+ };
134
+ const infos = yield this.getInfos({ forceCheck: configuration && configuration.forceCheck }, sysInfoConfig);
135
+ const warnings = this.filterInfosByType(infos, doctor_1.constants.WARNING_TYPE_NAME);
136
+ const hasWarnings = warnings.length > 0;
137
+ if (hasWarnings) {
138
+ // cleanup the cache file as there seems to be issues with the current config
139
+ // all projects need to be rechecked
140
+ this.$fs.deleteFile(this.jsonFileSettingsPath);
141
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
142
+ action: "Check Local Build Setup" /* TrackActionNames.CheckLocalBuildSetup */,
143
+ additionalData: `Warnings:${warnings.map((w) => w.message).join("__")}`,
144
+ });
145
+ this.printInfosCore(infos);
146
+ }
147
+ else {
148
+ infos.map((info) => this.$logger.trace(info.message));
149
+ yield this.$jsonFileSettingsService.saveSetting(this.getKeyForConfiguration(sysInfoConfig), infos);
150
+ }
151
+ yield this.$analyticsService.trackEventActionInGoogleAnalytics({
152
+ action: "Check Local Build Setup" /* TrackActionNames.CheckLocalBuildSetup */,
153
+ additionalData: `Finished: Is setup correct: ${!hasWarnings}`,
154
+ });
155
+ return !hasWarnings;
133
156
  });
134
- return !hasWarnings;
135
157
  }
136
158
  checkForDeprecatedShortImportsInAppDir(projectDir) {
137
159
  if (projectDir) {
@@ -176,13 +198,22 @@ class DoctorService {
176
198
  .getFsStats(path.join(pathToTnsCoreModules, entry))
177
199
  .isDirectory());
178
200
  const stringRegularExpressionsPerDir = coreModulesSubDirs.map((c) => {
201
+ // require("text");
202
+ // require("text/smth");
203
+ // require( "text/smth");
204
+ // require( "text/smth" );
205
+ // import * as text from "text";
206
+ // import { a } from "text";
207
+ // import {a } from "text/abc"
179
208
  const subDirPart = `[\"\']${c}[\"\'/]`;
180
209
  return `(\\brequire\\s*?\\(\\s*?${subDirPart})|(\\bimport\\b.*?from\\s*?${subDirPart})`;
181
210
  });
182
211
  return new RegExp(stringRegularExpressionsPerDir.join("|"), "g");
183
212
  }
184
- async runSetupScriptCore(executablePath, setupScriptArgs) {
185
- return this.$childProcess.spawnFromEvent(executablePath, setupScriptArgs, "close", { stdio: "inherit" });
213
+ runSetupScriptCore(executablePath, setupScriptArgs) {
214
+ return __awaiter(this, void 0, void 0, function* () {
215
+ return this.$childProcess.spawnFromEvent(executablePath, setupScriptArgs, "close", { stdio: "inherit" });
216
+ });
186
217
  }
187
218
  printPackageManagerTip() {
188
219
  if (this.$hostInfo.isWindows) {
@@ -244,17 +275,18 @@ class DoctorService {
244
275
  const data = helpers.getHash(key, { algorithm: "md5" });
245
276
  return data;
246
277
  }
247
- async getInfos(cacheConfig, sysInfoConfig) {
248
- const key = this.getKeyForConfiguration(sysInfoConfig);
249
- const infosFromCache = cacheConfig.forceCheck
250
- ? null
251
- : await this.$jsonFileSettingsService.getSettingValue(key);
252
- this.$logger.trace(`getInfos cacheConfig options:`, cacheConfig, " current info from cache: ", infosFromCache);
253
- const infos = infosFromCache || (await doctor_1.doctor.getInfos(sysInfoConfig));
254
- return infos;
278
+ getInfos(cacheConfig, sysInfoConfig) {
279
+ return __awaiter(this, void 0, void 0, function* () {
280
+ const key = this.getKeyForConfiguration(sysInfoConfig);
281
+ const infosFromCache = cacheConfig.forceCheck
282
+ ? null
283
+ : yield this.$jsonFileSettingsService.getSettingValue(key);
284
+ this.$logger.trace(`getInfos cacheConfig options:`, cacheConfig, " current info from cache: ", infosFromCache);
285
+ const infos = infosFromCache || (yield doctor_1.doctor.getInfos(sysInfoConfig));
286
+ return infos;
287
+ });
255
288
  }
256
289
  }
257
- exports.DoctorService = DoctorService;
258
290
  DoctorService.DarwinSetupScriptLocation = path.join(__dirname, "..", "..", "setup", "mac-startup-shell-script.sh");
259
291
  DoctorService.WindowsSetupScriptExecutable = "powershell.exe";
260
292
  DoctorService.WindowsSetupScriptArguments = [
@@ -272,4 +304,6 @@ __decorate([
272
304
  __decorate([
273
305
  (0, decorators_1.cache)()
274
306
  ], DoctorService.prototype, "$jsonFileSettingsService", null);
307
+ exports.DoctorService = DoctorService;
275
308
  yok_1.injector.register("doctorService", DoctorService);
309
+ //# sourceMappingURL=doctor-service.js.map
@@ -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.ExtensibilityService = void 0;
10
19
  const path = require("path");
@@ -32,24 +41,28 @@ class ExtensibilityService {
32
41
  this.$requireService = $requireService;
33
42
  this.customPathToExtensions = null;
34
43
  }
35
- async installExtension(extensionName) {
36
- this.$logger.trace(`Start installation of extension '${extensionName}'.`);
37
- await this.assertPackageJsonExists();
38
- const npmOpts = {
39
- save: true,
40
- ["save-exact"]: true,
41
- };
42
- const localPath = path.resolve(extensionName);
43
- const packageName = this.$fs.exists(localPath) ? localPath : extensionName;
44
- const installResultInfo = await this.$packageManager.install(packageName, this.pathToExtensions, npmOpts);
45
- this.$logger.trace(`Finished installation of extension '${extensionName}'. Trying to load it now.`);
46
- return this.getInstalledExtensionData(installResultInfo.name);
47
- }
48
- async uninstallExtension(extensionName) {
49
- this.$logger.trace(`Start uninstallation of extension '${extensionName}'.`);
50
- await this.assertPackageJsonExists();
51
- await this.$packageManager.uninstall(extensionName, { save: true }, this.pathToExtensions);
52
- this.$logger.trace(`Finished uninstallation of extension '${extensionName}'.`);
44
+ installExtension(extensionName) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ this.$logger.trace(`Start installation of extension '${extensionName}'.`);
47
+ yield this.assertPackageJsonExists();
48
+ const npmOpts = {
49
+ save: true,
50
+ ["save-exact"]: true,
51
+ };
52
+ const localPath = path.resolve(extensionName);
53
+ const packageName = this.$fs.exists(localPath) ? localPath : extensionName;
54
+ const installResultInfo = yield this.$packageManager.install(packageName, this.pathToExtensions, npmOpts);
55
+ this.$logger.trace(`Finished installation of extension '${extensionName}'. Trying to load it now.`);
56
+ return this.getInstalledExtensionData(installResultInfo.name);
57
+ });
58
+ }
59
+ uninstallExtension(extensionName) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ this.$logger.trace(`Start uninstallation of extension '${extensionName}'.`);
62
+ yield this.assertPackageJsonExists();
63
+ yield this.$packageManager.uninstall(extensionName, { save: true }, this.pathToExtensions);
64
+ this.$logger.trace(`Finished uninstallation of extension '${extensionName}'.`);
65
+ });
53
66
  }
54
67
  removeAllExtensions() {
55
68
  this.$fs.deleteDirectorySafe(this.pathToExtensions);
@@ -90,66 +103,76 @@ class ExtensibilityService {
90
103
  pathToExtension,
91
104
  };
92
105
  }
93
- async loadExtension(extensionName) {
94
- try {
95
- await this.assertExtensionIsInstalled(extensionName);
96
- const pathToExtension = this.getPathToExtension(extensionName);
97
- this.$requireService.require(pathToExtension);
98
- return this.getInstalledExtensionData(extensionName);
99
- }
100
- catch (error) {
101
- this.$logger.warn(`Error while loading ${extensionName} is: ${error.message}`);
102
- const err = (new Error(`Unable to load extension ${extensionName}. You will not be able to use the functionality that it adds. Error: ${error.message}`));
103
- err.extensionName = extensionName;
104
- throw err;
105
- }
106
+ loadExtension(extensionName) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ try {
109
+ yield this.assertExtensionIsInstalled(extensionName);
110
+ const pathToExtension = this.getPathToExtension(extensionName);
111
+ this.$requireService.require(pathToExtension);
112
+ return this.getInstalledExtensionData(extensionName);
113
+ }
114
+ catch (error) {
115
+ this.$logger.warn(`Error while loading ${extensionName} is: ${error.message}`);
116
+ const err = (new Error(`Unable to load extension ${extensionName}. You will not be able to use the functionality that it adds. Error: ${error.message}`));
117
+ err.extensionName = extensionName;
118
+ throw err;
119
+ }
120
+ });
106
121
  }
107
- async getExtensionNameWhereCommandIsRegistered(inputOpts) {
108
- let allExtensions = [];
109
- try {
110
- const npmsResult = await this.$packageManager.searchNpms("nativescript:extension");
111
- allExtensions = npmsResult.results || [];
112
- }
113
- catch (err) {
114
- this.$logger.trace(`Unable to find extensions via npms. Error is: ${err}`);
115
- return null;
116
- }
117
- const defaultCommandRegExp = new RegExp(`${(0, helpers_1.regExpEscape)(inputOpts.defaultCommandDelimiter)}.*`);
118
- const commandDelimiterRegExp = (0, helpers_1.createRegExp)(inputOpts.commandDelimiter, "g");
119
- for (const extensionData of allExtensions) {
120
- const extensionName = extensionData.package.name;
122
+ getExtensionNameWhereCommandIsRegistered(inputOpts) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ let allExtensions = [];
121
125
  try {
122
- const registryData = await this.$packageManager.getRegistryPackageData(extensionName);
123
- const latestPackageData = registryData.versions[registryData["dist-tags"].latest];
124
- const commands = latestPackageData &&
125
- latestPackageData.nativescript &&
126
- latestPackageData.nativescript.commands;
127
- if (commands && commands.length) {
128
- _.filter(commands, (command) => command.indexOf(inputOpts.defaultCommandDelimiter) !== -1).forEach((defaultCommand) => {
129
- commands.push(defaultCommand.replace(defaultCommandRegExp, ""));
130
- });
131
- const copyOfFullArgs = _.clone(inputOpts.inputStrings);
132
- while (copyOfFullArgs.length) {
133
- const currentCommand = copyOfFullArgs
134
- .join(inputOpts.commandDelimiter)
135
- .toLowerCase();
136
- if (_.some(commands, (c) => c.toLowerCase() === currentCommand)) {
137
- const beautifiedCommandName = currentCommand.replace(commandDelimiterRegExp, " ");
138
- return {
139
- extensionName,
140
- registeredCommandName: currentCommand,
141
- installationMessage: `The command ${beautifiedCommandName} is registered in extension ${extensionName}. You can install it by executing 'tns extension install ${extensionName}'`,
142
- };
126
+ const npmsResult = yield this.$packageManager.searchNpms("nativescript:extension");
127
+ allExtensions = npmsResult.results || [];
128
+ }
129
+ catch (err) {
130
+ this.$logger.trace(`Unable to find extensions via npms. Error is: ${err}`);
131
+ return null;
132
+ }
133
+ const defaultCommandRegExp = new RegExp(`${(0, helpers_1.regExpEscape)(inputOpts.defaultCommandDelimiter)}.*`);
134
+ const commandDelimiterRegExp = (0, helpers_1.createRegExp)(inputOpts.commandDelimiter, "g");
135
+ for (const extensionData of allExtensions) {
136
+ const extensionName = extensionData.package.name;
137
+ try {
138
+ // now get full package.json for the latest version of the package
139
+ const registryData = yield this.$packageManager.getRegistryPackageData(extensionName);
140
+ const latestPackageData = registryData.versions[registryData["dist-tags"].latest];
141
+ const commands = latestPackageData &&
142
+ latestPackageData.nativescript &&
143
+ latestPackageData.nativescript.commands;
144
+ if (commands && commands.length) {
145
+ // For each default command we need to add its short syntax in the array of commands.
146
+ // For example in case there's a default command called devices list, the commands array will contain devices|*list.
147
+ // However, in case the user executes just tns devices, CLI will still execute the tns devices list command.
148
+ // So we need to add the devices command as well.
149
+ _.filter(commands, (command) => command.indexOf(inputOpts.defaultCommandDelimiter) !== -1).forEach((defaultCommand) => {
150
+ commands.push(defaultCommand.replace(defaultCommandRegExp, ""));
151
+ });
152
+ const copyOfFullArgs = _.clone(inputOpts.inputStrings);
153
+ while (copyOfFullArgs.length) {
154
+ const currentCommand = copyOfFullArgs
155
+ .join(inputOpts.commandDelimiter)
156
+ .toLowerCase();
157
+ if (_.some(commands, (c) => c.toLowerCase() === currentCommand)) {
158
+ const beautifiedCommandName = currentCommand.replace(commandDelimiterRegExp, " ");
159
+ return {
160
+ extensionName,
161
+ registeredCommandName: currentCommand,
162
+ installationMessage: `The command ${beautifiedCommandName} is registered in extension ${extensionName}. You can install it by executing 'tns extension install ${extensionName}'`,
163
+ };
164
+ }
165
+ copyOfFullArgs.splice(-1, 1);
143
166
  }
144
- copyOfFullArgs.splice(-1, 1);
145
167
  }
146
168
  }
169
+ catch (err) {
170
+ // We do not want to stop the whole process in case we are unable to find data for one of the extensions.
171
+ this.$logger.trace(`Unable to get data for ${extensionName}. Error is: ${err}`);
172
+ }
147
173
  }
148
- catch (err) {
149
- this.$logger.trace(`Unable to get data for ${extensionName}. Error is: ${err}`);
150
- }
151
- }
152
- return null;
174
+ return null;
175
+ });
153
176
  }
154
177
  getPathToExtension(extensionName) {
155
178
  return path.join(this.pathToExtensions, constants.NODE_MODULES_FOLDER_NAME, extensionName);
@@ -160,14 +183,16 @@ class ExtensibilityService {
160
183
  const jsonData = this.$fs.readJson(pathToPackageJson);
161
184
  return jsonData;
162
185
  }
163
- async assertExtensionIsInstalled(extensionName) {
164
- this.$logger.trace(`Asserting extension ${extensionName} is installed.`);
165
- const installedExtensions = this.$fs.readDirectory(path.join(this.pathToExtensions, constants.NODE_MODULES_FOLDER_NAME));
166
- if (installedExtensions.indexOf(extensionName) === -1) {
167
- this.$logger.trace(`Extension ${extensionName} is not installed, starting installation.`);
168
- await this.installExtension(extensionName);
169
- }
170
- this.$logger.trace(`Extension ${extensionName} is installed.`);
186
+ assertExtensionIsInstalled(extensionName) {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ this.$logger.trace(`Asserting extension ${extensionName} is installed.`);
189
+ const installedExtensions = this.$fs.readDirectory(path.join(this.pathToExtensions, constants.NODE_MODULES_FOLDER_NAME));
190
+ if (installedExtensions.indexOf(extensionName) === -1) {
191
+ this.$logger.trace(`Extension ${extensionName} is not installed, starting installation.`);
192
+ yield this.installExtension(extensionName);
193
+ }
194
+ this.$logger.trace(`Extension ${extensionName} is installed.`);
195
+ });
171
196
  }
172
197
  assertExtensionsDirExists() {
173
198
  if (!this.$fs.exists(this.pathToExtensions)) {
@@ -178,6 +203,7 @@ class ExtensibilityService {
178
203
  this.assertExtensionsDirExists();
179
204
  if (!this.$fs.exists(this.pathToPackageJson)) {
180
205
  this.$logger.trace(`Creating ${this.pathToPackageJson}.`);
206
+ // create default package.json
181
207
  this.$fs.writeJson(this.pathToPackageJson, {
182
208
  name: "nativescript-extensibility",
183
209
  version: "1.0.0",
@@ -191,11 +217,12 @@ class ExtensibilityService {
191
217
  }
192
218
  }
193
219
  }
194
- exports.ExtensibilityService = ExtensibilityService;
195
220
  __decorate([
196
221
  (0, decorators_1.cache)()
197
222
  ], ExtensibilityService.prototype, "assertExtensionsDirExists", null);
198
223
  __decorate([
199
224
  (0, decorators_1.cache)()
200
225
  ], ExtensibilityService.prototype, "assertPackageJsonExists", null);
226
+ exports.ExtensibilityService = ExtensibilityService;
201
227
  yok_1.injector.register("extensibilityService", ExtensibilityService);
228
+ //# sourceMappingURL=extensibility-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.FilesHashService = void 0;
4
13
  const helpers_1 = require("../common/helpers");
@@ -13,36 +22,44 @@ class FilesHashService {
13
22
  this.$logger = $logger;
14
23
  this.$options = $options;
15
24
  }
16
- async generateHashes(files) {
17
- const result = {};
18
- const action = async (file) => {
19
- try {
20
- const isFile = this.$fs.getFsStats(file).isFile();
21
- if (isFile) {
22
- result[file] = await this.$fs.getFileShasum(file);
25
+ generateHashes(files) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const result = {};
28
+ const action = (file) => __awaiter(this, void 0, void 0, function* () {
29
+ try {
30
+ const isFile = this.$fs.getFsStats(file).isFile();
31
+ if (isFile) {
32
+ result[file] = yield this.$fs.getFileShasum(file);
33
+ }
23
34
  }
24
- }
25
- catch (err) {
26
- this.$logger.trace(`Unable to generate hash for file ${file}. Error is: ${err}`);
27
- }
28
- };
29
- await (0, helpers_1.executeActionByChunks)(files, constants_1.DEFAULT_CHUNK_SIZE, action);
30
- return result;
35
+ catch (err) {
36
+ this.$logger.trace(`Unable to generate hash for file ${file}. Error is: ${err}`);
37
+ }
38
+ });
39
+ yield (0, helpers_1.executeActionByChunks)(files, constants_1.DEFAULT_CHUNK_SIZE, action);
40
+ return result;
41
+ });
31
42
  }
32
- async generateHashesForProject(platformData) {
33
- const appFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
34
- const files = this.$fs.enumerateFilesInDirectorySync(appFilesPath);
35
- const hashes = await this.generateHashes(files);
36
- return hashes;
43
+ generateHashesForProject(platformData) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const appFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
46
+ const files = this.$fs.enumerateFilesInDirectorySync(appFilesPath);
47
+ const hashes = yield this.generateHashes(files);
48
+ return hashes;
49
+ });
37
50
  }
38
- async saveHashesForProject(platformData, hashesFileDirectory) {
39
- const hashes = await this.generateHashesForProject(platformData);
40
- this.saveHashes(hashes, hashesFileDirectory);
41
- return hashes;
51
+ saveHashesForProject(platformData, hashesFileDirectory) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const hashes = yield this.generateHashesForProject(platformData);
54
+ this.saveHashes(hashes, hashesFileDirectory);
55
+ return hashes;
56
+ });
42
57
  }
43
- async getChanges(files, oldHashes) {
44
- const newHashes = await this.generateHashes(files);
45
- return this.getChangesInShasums(oldHashes, newHashes);
58
+ getChanges(files, oldHashes) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const newHashes = yield this.generateHashes(files);
61
+ return this.getChangesInShasums(oldHashes, newHashes);
62
+ });
46
63
  }
47
64
  hasChangesInShasums(oldHashes, newHashes) {
48
65
  return !!_.keys(this.getChangesInShasums(oldHashes, newHashes)).length;
@@ -61,3 +78,4 @@ class FilesHashService {
61
78
  }
62
79
  exports.FilesHashService = FilesHashService;
63
80
  yok_1.injector.register("filesHashService", FilesHashService);
81
+ //# sourceMappingURL=files-hash-service.js.map