@akylas/nativescript-cli 8.8.2 → 8.8.4

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 (275) hide show
  1. package/lib/android-tools-info.js +9 -20
  2. package/lib/base-package-manager.js +47 -64
  3. package/lib/bun-package-manager.js +65 -88
  4. package/lib/color.js +2 -2
  5. package/lib/commands/add-platform.js +14 -30
  6. package/lib/commands/apple-login.js +18 -29
  7. package/lib/commands/appstore-list.js +34 -45
  8. package/lib/commands/appstore-upload.js +55 -68
  9. package/lib/commands/build.js +57 -86
  10. package/lib/commands/clean.js +161 -176
  11. package/lib/commands/command-base.js +14 -27
  12. package/lib/commands/config.js +51 -70
  13. package/lib/commands/create-project.js +210 -229
  14. package/lib/commands/debug.js +66 -88
  15. package/lib/commands/deploy.js +28 -44
  16. package/lib/commands/embedding/embed.js +33 -52
  17. package/lib/commands/extensibility/install-extension.js +5 -16
  18. package/lib/commands/extensibility/list-extensions.js +13 -24
  19. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  20. package/lib/commands/fonts.js +30 -41
  21. package/lib/commands/generate-assets.js +13 -28
  22. package/lib/commands/generate-help.js +2 -13
  23. package/lib/commands/generate.js +17 -26
  24. package/lib/commands/info.js +2 -13
  25. package/lib/commands/install.js +34 -49
  26. package/lib/commands/list-platforms.js +14 -25
  27. package/lib/commands/migrate.js +15 -26
  28. package/lib/commands/native-add.js +23 -46
  29. package/lib/commands/platform-clean.js +19 -32
  30. package/lib/commands/plugin/add-plugin.js +12 -25
  31. package/lib/commands/plugin/build-plugin.js +34 -39
  32. package/lib/commands/plugin/create-plugin.js +110 -133
  33. package/lib/commands/plugin/list-plugins.js +22 -33
  34. package/lib/commands/plugin/remove-plugin.js +20 -33
  35. package/lib/commands/plugin/update-plugin.js +20 -33
  36. package/lib/commands/post-install.js +20 -33
  37. package/lib/commands/prepare.js +19 -35
  38. package/lib/commands/preview.js +49 -62
  39. package/lib/commands/remove-platform.js +7 -18
  40. package/lib/commands/resources/resources-update.js +13 -26
  41. package/lib/commands/run.js +55 -76
  42. package/lib/commands/start.js +6 -19
  43. package/lib/commands/test-init.js +123 -134
  44. package/lib/commands/test.js +66 -89
  45. package/lib/commands/typings.js +126 -142
  46. package/lib/commands/update-platform.js +22 -35
  47. package/lib/commands/update.js +30 -43
  48. package/lib/common/child-process.js +53 -72
  49. package/lib/common/codeGeneration/code-entity.js +1 -1
  50. package/lib/common/codeGeneration/code-printer.js +1 -1
  51. package/lib/common/command-params.js +7 -18
  52. package/lib/common/commands/analytics.js +27 -40
  53. package/lib/common/commands/autocompletion.js +39 -56
  54. package/lib/common/commands/device/device-log-stream.js +12 -23
  55. package/lib/common/commands/device/get-file.js +22 -33
  56. package/lib/common/commands/device/list-applications.js +12 -23
  57. package/lib/common/commands/device/list-devices.js +72 -87
  58. package/lib/common/commands/device/list-files.js +23 -34
  59. package/lib/common/commands/device/put-file.js +22 -33
  60. package/lib/common/commands/device/run-application.js +12 -25
  61. package/lib/common/commands/device/stop-application.js +11 -22
  62. package/lib/common/commands/device/uninstall-application.js +6 -17
  63. package/lib/common/commands/generate-messages.js +17 -28
  64. package/lib/common/commands/help.js +20 -33
  65. package/lib/common/commands/package-manager-get.js +6 -17
  66. package/lib/common/commands/package-manager-set.js +9 -20
  67. package/lib/common/commands/post-install.js +2 -13
  68. package/lib/common/commands/preuninstall.js +23 -38
  69. package/lib/common/commands/proxy/proxy-base.js +8 -19
  70. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  71. package/lib/common/commands/proxy/proxy-get.js +3 -14
  72. package/lib/common/commands/proxy/proxy-set.js +87 -100
  73. package/lib/common/constants.js +11 -11
  74. package/lib/common/decorators.js +10 -22
  75. package/lib/common/dispatchers.js +79 -96
  76. package/lib/common/errors.js +89 -104
  77. package/lib/common/file-system.js +106 -127
  78. package/lib/common/header.js +1 -2
  79. package/lib/common/helpers.js +149 -178
  80. package/lib/common/host-info.js +37 -50
  81. package/lib/common/http-client.js +93 -108
  82. package/lib/common/logger/appenders/cli-appender.js +1 -2
  83. package/lib/common/logger/appenders/emit-appender.js +1 -2
  84. package/lib/common/logger/layouts/cli-layout.js +1 -2
  85. package/lib/common/logger/logger.js +1 -1
  86. package/lib/common/mobile/android/android-application-manager.js +121 -142
  87. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  88. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  89. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  90. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  91. package/lib/common/mobile/android/android-device.js +74 -91
  92. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  93. package/lib/common/mobile/android/android-log-filter.js +1 -1
  94. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  95. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  96. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  97. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  98. package/lib/common/mobile/android/logcat-helper.js +108 -127
  99. package/lib/common/mobile/application-manager-base.js +84 -107
  100. package/lib/common/mobile/device-log-provider-base.js +7 -18
  101. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  102. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  103. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  104. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  105. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  106. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  107. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  108. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  109. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  110. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  111. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  112. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  113. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  114. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  115. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  116. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  117. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  118. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  119. package/lib/common/mobile/mobile-helper.js +15 -26
  120. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  121. package/lib/common/opener.js +2 -2
  122. package/lib/common/plist-parser.js +3 -3
  123. package/lib/common/prompter.js +90 -105
  124. package/lib/common/queue.js +9 -20
  125. package/lib/common/services/auto-completion-service.js +39 -52
  126. package/lib/common/services/cancellation.js +17 -28
  127. package/lib/common/services/commands-service.js +146 -169
  128. package/lib/common/services/help-service.js +132 -157
  129. package/lib/common/services/hooks-service.js +93 -108
  130. package/lib/common/services/ios-notification-service.js +21 -34
  131. package/lib/common/services/json-file-settings-service.js +52 -71
  132. package/lib/common/services/lock-service.js +35 -52
  133. package/lib/common/services/message-contract-generator.js +35 -46
  134. package/lib/common/services/micro-templating-service.js +4 -15
  135. package/lib/common/services/net-service.js +90 -107
  136. package/lib/common/services/project-files-manager.js +10 -23
  137. package/lib/common/services/proxy-service.js +13 -24
  138. package/lib/common/services/qr.js +13 -24
  139. package/lib/common/services/settings-service.js +1 -1
  140. package/lib/common/services/xcode-select-service.js +20 -35
  141. package/lib/common/utils.js +2 -2
  142. package/lib/common/validators/project-name-validator.js +1 -1
  143. package/lib/common/validators/validation-result.js +1 -1
  144. package/lib/common/verify-node-version.js +2 -3
  145. package/lib/common/yok.js +23 -36
  146. package/lib/config.js +7 -58
  147. package/lib/constants.js +24 -24
  148. package/lib/controllers/build-controller.js +82 -99
  149. package/lib/controllers/debug-controller.js +107 -128
  150. package/lib/controllers/deploy-controller.js +17 -22
  151. package/lib/controllers/migrate-controller.js +722 -795
  152. package/lib/controllers/platform-controller.js +72 -87
  153. package/lib/controllers/prepare-controller.js +266 -299
  154. package/lib/controllers/run-controller.js +392 -406
  155. package/lib/controllers/update-controller-base.js +16 -29
  156. package/lib/controllers/update-controller.js +94 -119
  157. package/lib/data/prepare-data.js +4 -1
  158. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  159. package/lib/definitions/livesync.d.ts +1 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +45 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +161 -211
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +161 -198
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +34 -47
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +230 -256
  194. package/lib/services/android-project-service.js +163 -199
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  198. package/lib/services/assets-generation/assets-generation-service.js +98 -115
  199. package/lib/services/build-artifacts-service.js +9 -20
  200. package/lib/services/build-info-file-service.js +20 -35
  201. package/lib/services/cleanup-service.js +47 -76
  202. package/lib/services/cocoapods-service.js +115 -136
  203. package/lib/services/device/device-install-app-service.js +73 -90
  204. package/lib/services/doctor-service.js +99 -118
  205. package/lib/services/extensibility-service.js +81 -100
  206. package/lib/services/files-hash-service.js +26 -43
  207. package/lib/services/hmr-status-service.js +1 -1
  208. package/lib/services/initialize-service.js +37 -50
  209. package/lib/services/ios/export-options-plist-service.js +38 -51
  210. package/lib/services/ios/ios-signing-service.js +161 -180
  211. package/lib/services/ios/spm-service.js +40 -53
  212. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  213. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  214. package/lib/services/ios/xcodebuild-service.js +50 -69
  215. package/lib/services/ios-debugger-port-service.js +23 -36
  216. package/lib/services/ios-device-debug-service.js +75 -102
  217. package/lib/services/ios-entitlements-service.js +31 -42
  218. package/lib/services/ios-extensions-service.js +18 -29
  219. package/lib/services/ios-project-service.js +405 -460
  220. package/lib/services/ios-provision-service.js +108 -129
  221. package/lib/services/ios-watch-app-service.js +21 -32
  222. package/lib/services/ip-service.js +38 -53
  223. package/lib/services/itmstransporter-service.js +129 -152
  224. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  225. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  226. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  227. package/lib/services/livesync/android-livesync-service.js +14 -35
  228. package/lib/services/livesync/android-livesync-tool.js +89 -112
  229. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  230. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  231. package/lib/services/livesync/ios-livesync-service.js +42 -58
  232. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  233. package/lib/services/log-parser-service.js +1 -1
  234. package/lib/services/log-source-map-service.js +30 -41
  235. package/lib/services/marking-mode-service.js +15 -28
  236. package/lib/services/npm-config-service.js +1 -1
  237. package/lib/services/pacote-service.js +49 -64
  238. package/lib/services/performance-service.js +1 -1
  239. package/lib/services/platform/add-platform-service.js +50 -71
  240. package/lib/services/platform/platform-validation-service.js +22 -33
  241. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  242. package/lib/services/platform-environment-requirements.js +26 -37
  243. package/lib/services/plugins-service.js +122 -147
  244. package/lib/services/project-backup-service.js +1 -1
  245. package/lib/services/project-changes-service.js +124 -141
  246. package/lib/services/project-cleanup-service.js +64 -77
  247. package/lib/services/project-config-service.js +71 -80
  248. package/lib/services/project-data-service.js +101 -118
  249. package/lib/services/project-name-service.js +28 -43
  250. package/lib/services/project-service.js +84 -103
  251. package/lib/services/project-templates-service.js +52 -67
  252. package/lib/services/start-service.js +41 -59
  253. package/lib/services/temp-service.js +8 -21
  254. package/lib/services/terminal-spinner-service.js +13 -24
  255. package/lib/services/test-execution-service.js +59 -72
  256. package/lib/services/test-initialization-service.js +2 -2
  257. package/lib/services/timeline-profiler-service.js +1 -1
  258. package/lib/services/versions-service.js +119 -138
  259. package/lib/services/webpack/webpack-compiler-service.js +211 -231
  260. package/lib/services/xcconfig-service.js +8 -19
  261. package/lib/sys-info.js +45 -62
  262. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  263. package/lib/yarn-package-manager.js +59 -78
  264. package/lib/yarn2-package-manager.js +60 -79
  265. package/package.json +56 -54
  266. package/vendor/aab-tool/bundletool.jar +0 -0
  267. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  268. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  269. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  270. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  271. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  272. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  273. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  274. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  275. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.TestExecutionService = void 0;
13
4
  const constants = require("../constants");
@@ -29,74 +20,70 @@ class TestExecutionService {
29
20
  this.$childProcess = $childProcess;
30
21
  this.allowedParameters = [];
31
22
  }
32
- startKarmaServer(platform, liveSyncInfo, deviceDescriptors) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- platform = platform.toLowerCase();
35
- this.platform = platform;
36
- const projectData = this.$projectDataService.getProjectData(liveSyncInfo.projectDir);
37
- yield this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
38
- const karmaConfig = this.getKarmaConfiguration(platform, projectData);
39
- const karmaRunner = this.$childProcess.spawn(process.execPath, [path.join(__dirname, "karma-execution.js")], { stdio: ["inherit", "inherit", "inherit", "ipc"] });
40
- const launchKarmaTests = (karmaData) => __awaiter(this, void 0, void 0, function* () {
41
- this.$logger.trace("## Unit-testing: Parent process received message", karmaData);
42
- let port;
43
- if (karmaData.url) {
44
- port = karmaData.url.port;
45
- const socketIoJsUrl = `http://${karmaData.url.host}/socket.io/socket.io.js`;
46
- const socketIoJs = (yield this.$httpClient.httpRequest(socketIoJsUrl))
47
- .body;
48
- this.$fs.writeFile(path.join(liveSyncInfo.projectDir, TestExecutionService.SOCKETIO_JS_FILE_NAME), JSON.parse(socketIoJs));
49
- }
50
- if (karmaData.launcherConfig) {
51
- const configOptions = JSON.parse(karmaData.launcherConfig);
52
- const configJs = this.generateConfig(port, configOptions);
53
- this.$fs.writeFile(path.join(liveSyncInfo.projectDir, TestExecutionService.CONFIG_FILE_NAME), configJs);
54
- }
55
- yield this.$runController.run({
56
- liveSyncInfo,
57
- deviceDescriptors,
58
- });
59
- });
60
- karmaRunner.on("message", (karmaData) => {
61
- this.$logger.trace(`The received message from karma is: `, karmaData);
62
- if (!karmaData.launcherConfig && !karmaData.url) {
63
- return;
64
- }
65
- launchKarmaTests(karmaData).catch((result) => {
66
- this.$logger.error(result);
67
- process.exit(130);
68
- });
23
+ async startKarmaServer(platform, liveSyncInfo, deviceDescriptors) {
24
+ platform = platform.toLowerCase();
25
+ this.platform = platform;
26
+ const projectData = this.$projectDataService.getProjectData(liveSyncInfo.projectDir);
27
+ await this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
28
+ const karmaConfig = this.getKarmaConfiguration(platform, projectData);
29
+ const karmaRunner = this.$childProcess.spawn(process.execPath, [path.join(__dirname, "karma-execution.js")], { stdio: ["inherit", "inherit", "inherit", "ipc"] });
30
+ const launchKarmaTests = async (karmaData) => {
31
+ this.$logger.trace("## Unit-testing: Parent process received message", karmaData);
32
+ let port;
33
+ if (karmaData.url) {
34
+ port = karmaData.url.port;
35
+ const socketIoJsUrl = `http://${karmaData.url.host}/socket.io/socket.io.js`;
36
+ const socketIoJs = (await this.$httpClient.httpRequest(socketIoJsUrl))
37
+ .body;
38
+ this.$fs.writeFile(path.join(liveSyncInfo.projectDir, TestExecutionService.SOCKETIO_JS_FILE_NAME), JSON.parse(socketIoJs));
39
+ }
40
+ if (karmaData.launcherConfig) {
41
+ const configOptions = JSON.parse(karmaData.launcherConfig);
42
+ const configJs = this.generateConfig(port, configOptions);
43
+ this.$fs.writeFile(path.join(liveSyncInfo.projectDir, TestExecutionService.CONFIG_FILE_NAME), configJs);
44
+ }
45
+ await this.$runController.run({
46
+ liveSyncInfo,
47
+ deviceDescriptors,
69
48
  });
70
- return new Promise((resolve, reject) => {
71
- karmaRunner.on("exit", (exitCode) => {
72
- if (exitCode !== 0) {
73
- const testError = new Error("Test run failed.");
74
- reject(testError);
75
- }
76
- else {
77
- resolve();
78
- }
79
- });
80
- karmaRunner.send({ karmaConfig: karmaConfig });
49
+ };
50
+ karmaRunner.on("message", (karmaData) => {
51
+ this.$logger.trace(`The received message from karma is: `, karmaData);
52
+ if (!karmaData.launcherConfig && !karmaData.url) {
53
+ return;
54
+ }
55
+ launchKarmaTests(karmaData).catch((result) => {
56
+ this.$logger.error(result);
57
+ process.exit(130);
81
58
  });
82
59
  });
83
- }
84
- canStartKarmaServer(projectData) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- let canStartKarmaServer = true;
87
- const requiredDependencies = ["@nativescript/unit-test-runner"];
88
- _.each(requiredDependencies, (dep) => {
89
- if (!projectData.dependencies[dep] && !projectData.devDependencies[dep]) {
90
- canStartKarmaServer = false;
91
- return;
60
+ return new Promise((resolve, reject) => {
61
+ karmaRunner.on("exit", (exitCode) => {
62
+ if (exitCode !== 0) {
63
+ const testError = new Error("Test run failed.");
64
+ reject(testError);
65
+ }
66
+ else {
67
+ resolve();
92
68
  }
93
69
  });
94
- const pathToKarma = (0, package_path_helper_1.resolvePackagePath)("karma", {
95
- paths: [projectData.projectDir],
96
- });
97
- canStartKarmaServer = canStartKarmaServer && !!pathToKarma;
98
- return canStartKarmaServer;
70
+ karmaRunner.send({ karmaConfig: karmaConfig });
71
+ });
72
+ }
73
+ async canStartKarmaServer(projectData) {
74
+ let canStartKarmaServer = true;
75
+ const requiredDependencies = ["@nativescript/unit-test-runner"];
76
+ _.each(requiredDependencies, (dep) => {
77
+ if (!projectData.dependencies[dep] && !projectData.devDependencies[dep]) {
78
+ canStartKarmaServer = false;
79
+ return;
80
+ }
99
81
  });
82
+ const pathToKarma = (0, package_path_helper_1.resolvePackagePath)("karma", {
83
+ paths: [projectData.projectDir],
84
+ });
85
+ canStartKarmaServer = canStartKarmaServer && !!pathToKarma;
86
+ return canStartKarmaServer;
100
87
  }
101
88
  generateConfig(port, options) {
102
89
  const nics = os.networkInterfaces();
@@ -148,7 +135,7 @@ class TestExecutionService {
148
135
  return karmaConfig;
149
136
  }
150
137
  }
138
+ exports.TestExecutionService = TestExecutionService;
151
139
  TestExecutionService.CONFIG_FILE_NAME = `node_modules/${constants.TEST_RUNNER_NAME}/config.js`;
152
140
  TestExecutionService.SOCKETIO_JS_FILE_NAME = `node_modules/${constants.TEST_RUNNER_NAME}/socket.io.js`;
153
- exports.TestExecutionService = TestExecutionService;
154
141
  yok_1.injector.register("testExecutionService", TestExecutionService);
@@ -30,7 +30,7 @@ class TestInitializationService {
30
30
  if (!dependencyVersion) {
31
31
  this.$errors.fail(`'${dependency}' is not a registered dependency.`);
32
32
  }
33
- return Object.assign(Object.assign({}, dependency), { version: dependencyVersion });
33
+ return { ...dependency, version: dependencyVersion };
34
34
  });
35
35
  return targetFrameworkDependencies;
36
36
  }
@@ -44,11 +44,11 @@ class TestInitializationService {
44
44
  return frameworks;
45
45
  }
46
46
  }
47
+ exports.TestInitializationService = TestInitializationService;
47
48
  __decorate([
48
49
  (0, decorators_1.cache)()
49
50
  ], TestInitializationService.prototype, "getDependencies", null);
50
51
  __decorate([
51
52
  (0, decorators_1.cache)()
52
53
  ], TestInitializationService.prototype, "getFrameworkNames", null);
53
- exports.TestInitializationService = TestInitializationService;
54
54
  yok_1.injector.register("testInitializationService", TestInitializationService);
@@ -101,8 +101,8 @@ class TimelineProfilerService {
101
101
  process.exit();
102
102
  }
103
103
  }
104
+ exports.TimelineProfilerService = TimelineProfilerService;
104
105
  __decorate([
105
106
  (0, decorators_1.cache)()
106
107
  ], TimelineProfilerService.prototype, "isEnabled", null);
107
- exports.TimelineProfilerService = TimelineProfilerService;
108
108
  yok_1.injector.register("timelineProfilerService", TimelineProfilerService);
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.VersionInformationType = void 0;
13
4
  const constants = require("../constants");
@@ -21,7 +12,7 @@ var VersionInformationType;
21
12
  VersionInformationType["UpToDate"] = "UpToDate";
22
13
  VersionInformationType["UpdateAvailable"] = "UpdateAvailable";
23
14
  VersionInformationType["NotInstalled"] = "NotInstalled";
24
- })(VersionInformationType = exports.VersionInformationType || (exports.VersionInformationType = {}));
15
+ })(VersionInformationType || (exports.VersionInformationType = VersionInformationType = {}));
25
16
  class VersionsService {
26
17
  constructor($fs, $packageInstallationManager, $injector, $logger, $staticConfig, $pluginsService, $projectDataService, $terminalSpinnerService) {
27
18
  this.$fs = $fs;
@@ -34,146 +25,136 @@ class VersionsService {
34
25
  this.$terminalSpinnerService = $terminalSpinnerService;
35
26
  this.projectData = this.getProjectData();
36
27
  }
37
- getNativescriptCliVersion() {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- const currentCliVersion = this.$staticConfig.version;
40
- const latestCliVersion = yield this.$packageInstallationManager.getLatestVersion(constants.NATIVESCRIPT_KEY_NAME);
41
- return {
42
- componentName: constants.NATIVESCRIPT_KEY_NAME,
43
- currentVersion: currentCliVersion,
44
- latestVersion: latestCliVersion,
45
- };
46
- });
28
+ async getNativescriptCliVersion() {
29
+ const currentCliVersion = this.$staticConfig.version;
30
+ const latestCliVersion = await this.$packageInstallationManager.getLatestVersion(constants.NATIVESCRIPT_KEY_NAME);
31
+ return {
32
+ componentName: constants.NATIVESCRIPT_KEY_NAME,
33
+ currentVersion: currentCliVersion,
34
+ latestVersion: latestCliVersion,
35
+ };
47
36
  }
48
- getTnsCoreModulesVersion() {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const latestTnsCoreModulesVersion = yield this.$packageInstallationManager.getLatestVersion(constants.TNS_CORE_MODULES_NAME);
51
- const nativescriptCoreModulesInfo = {
52
- componentName: constants.TNS_CORE_MODULES_NAME,
53
- latestVersion: latestTnsCoreModulesVersion,
54
- };
55
- const versionInformations = [];
56
- if (this.projectData) {
57
- const nodeModulesPath = path.join(this.projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME);
58
- const scopedPackagePath = path.join(nodeModulesPath, constants.SCOPED_TNS_CORE_MODULES);
59
- const tnsCoreModulesPath = path.join(nodeModulesPath, constants.TNS_CORE_MODULES_NAME);
60
- const dependsOnNonScopedPackage = !!this.projectData.dependencies[constants.TNS_CORE_MODULES_NAME];
61
- const dependsOnScopedPackage = !!this.projectData.dependencies[constants.SCOPED_TNS_CORE_MODULES];
62
- if (!this.$fs.exists(nodeModulesPath) ||
63
- (dependsOnNonScopedPackage && !this.$fs.exists(tnsCoreModulesPath)) ||
64
- (dependsOnScopedPackage && !this.$fs.exists(scopedPackagePath))) {
65
- yield this.$pluginsService.ensureAllDependenciesAreInstalled(this.projectData);
66
- }
67
- if (dependsOnNonScopedPackage && this.$fs.exists(tnsCoreModulesPath)) {
68
- const currentTnsCoreModulesVersion = this.$fs.readJson(path.join(tnsCoreModulesPath, constants.PACKAGE_JSON_FILE_NAME)).version;
69
- nativescriptCoreModulesInfo.currentVersion = currentTnsCoreModulesVersion;
70
- versionInformations.push(nativescriptCoreModulesInfo);
71
- }
72
- if (dependsOnScopedPackage && this.$fs.exists(scopedPackagePath)) {
73
- const scopedModulesInformation = {
74
- componentName: constants.SCOPED_TNS_CORE_MODULES,
75
- latestVersion: yield this.$packageInstallationManager.getLatestVersion(constants.SCOPED_TNS_CORE_MODULES),
76
- };
77
- const currentScopedPackageVersion = this.$fs.readJson(path.join(scopedPackagePath, constants.PACKAGE_JSON_FILE_NAME)).version;
78
- scopedModulesInformation.currentVersion = currentScopedPackageVersion;
79
- versionInformations.push(scopedModulesInformation);
80
- }
37
+ async getTnsCoreModulesVersion() {
38
+ const latestTnsCoreModulesVersion = await this.$packageInstallationManager.getLatestVersion(constants.TNS_CORE_MODULES_NAME);
39
+ const nativescriptCoreModulesInfo = {
40
+ componentName: constants.TNS_CORE_MODULES_NAME,
41
+ latestVersion: latestTnsCoreModulesVersion,
42
+ };
43
+ const versionInformations = [];
44
+ if (this.projectData) {
45
+ const nodeModulesPath = path.join(this.projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME);
46
+ const scopedPackagePath = path.join(nodeModulesPath, constants.SCOPED_TNS_CORE_MODULES);
47
+ const tnsCoreModulesPath = path.join(nodeModulesPath, constants.TNS_CORE_MODULES_NAME);
48
+ const dependsOnNonScopedPackage = !!this.projectData.dependencies[constants.TNS_CORE_MODULES_NAME];
49
+ const dependsOnScopedPackage = !!this.projectData.dependencies[constants.SCOPED_TNS_CORE_MODULES];
50
+ if (!this.$fs.exists(nodeModulesPath) ||
51
+ (dependsOnNonScopedPackage && !this.$fs.exists(tnsCoreModulesPath)) ||
52
+ (dependsOnScopedPackage && !this.$fs.exists(scopedPackagePath))) {
53
+ await this.$pluginsService.ensureAllDependenciesAreInstalled(this.projectData);
81
54
  }
82
- else {
55
+ if (dependsOnNonScopedPackage && this.$fs.exists(tnsCoreModulesPath)) {
56
+ const currentTnsCoreModulesVersion = this.$fs.readJson(path.join(tnsCoreModulesPath, constants.PACKAGE_JSON_FILE_NAME)).version;
57
+ nativescriptCoreModulesInfo.currentVersion = currentTnsCoreModulesVersion;
83
58
  versionInformations.push(nativescriptCoreModulesInfo);
84
59
  }
85
- return versionInformations;
86
- });
87
- }
88
- getRuntimesVersions(platform) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const iosRuntime = this.$projectDataService.getRuntimePackage(this.projectData.projectDir, "ios");
91
- const androidRuntime = this.$projectDataService.getRuntimePackage(this.projectData.projectDir, "android");
92
- let runtimes = [];
93
- if (!platform) {
94
- runtimes = [iosRuntime, androidRuntime];
95
- }
96
- else if (platform === "ios") {
97
- runtimes.push(iosRuntime);
98
- }
99
- else if (platform === "android") {
100
- runtimes.push(androidRuntime);
101
- }
102
- const runtimesVersions = yield Promise.all(runtimes.map((runtime) => __awaiter(this, void 0, void 0, function* () {
103
- const latestVersion = yield this.$packageInstallationManager.getLatestVersion(runtime.name);
104
- const runtimeInformation = {
105
- componentName: runtime.name,
106
- currentVersion: runtime.version,
107
- latestVersion,
60
+ if (dependsOnScopedPackage && this.$fs.exists(scopedPackagePath)) {
61
+ const scopedModulesInformation = {
62
+ componentName: constants.SCOPED_TNS_CORE_MODULES,
63
+ latestVersion: await this.$packageInstallationManager.getLatestVersion(constants.SCOPED_TNS_CORE_MODULES),
108
64
  };
109
- return runtimeInformation;
110
- })));
111
- return runtimesVersions;
112
- });
65
+ const currentScopedPackageVersion = this.$fs.readJson(path.join(scopedPackagePath, constants.PACKAGE_JSON_FILE_NAME)).version;
66
+ scopedModulesInformation.currentVersion = currentScopedPackageVersion;
67
+ versionInformations.push(scopedModulesInformation);
68
+ }
69
+ }
70
+ else {
71
+ versionInformations.push(nativescriptCoreModulesInfo);
72
+ }
73
+ return versionInformations;
113
74
  }
114
- getAllComponentsVersions(platform) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- try {
117
- let allComponents = [];
118
- const nativescriptCliInformation = yield this.getNativescriptCliVersion();
119
- if (nativescriptCliInformation) {
120
- allComponents.push(nativescriptCliInformation);
121
- }
122
- if (this.projectData) {
123
- const nativescriptCoreModulesInformation = yield this.getTnsCoreModulesVersion();
124
- if (nativescriptCoreModulesInformation) {
125
- allComponents.push(...nativescriptCoreModulesInformation);
126
- }
127
- const runtimesVersions = yield this.getRuntimesVersions(platform);
128
- allComponents = allComponents.concat(runtimesVersions);
75
+ async getRuntimesVersions(platform) {
76
+ const iosRuntime = this.$projectDataService.getRuntimePackage(this.projectData.projectDir, "ios");
77
+ const androidRuntime = this.$projectDataService.getRuntimePackage(this.projectData.projectDir, "android");
78
+ let runtimes = [];
79
+ if (!platform) {
80
+ runtimes = [iosRuntime, androidRuntime];
81
+ }
82
+ else if (platform === "ios") {
83
+ runtimes.push(iosRuntime);
84
+ }
85
+ else if (platform === "android") {
86
+ runtimes.push(androidRuntime);
87
+ }
88
+ const runtimesVersions = await Promise.all(runtimes.map(async (runtime) => {
89
+ const latestVersion = await this.$packageInstallationManager.getLatestVersion(runtime.name);
90
+ const runtimeInformation = {
91
+ componentName: runtime.name,
92
+ currentVersion: runtime.version,
93
+ latestVersion,
94
+ };
95
+ return runtimeInformation;
96
+ }));
97
+ return runtimesVersions;
98
+ }
99
+ async getAllComponentsVersions(platform) {
100
+ try {
101
+ let allComponents = [];
102
+ const nativescriptCliInformation = await this.getNativescriptCliVersion();
103
+ if (nativescriptCliInformation) {
104
+ allComponents.push(nativescriptCliInformation);
105
+ }
106
+ if (this.projectData) {
107
+ const nativescriptCoreModulesInformation = await this.getTnsCoreModulesVersion();
108
+ if (nativescriptCoreModulesInformation) {
109
+ allComponents.push(...nativescriptCoreModulesInformation);
129
110
  }
130
- return allComponents.map((componentInformation) => {
131
- if (componentInformation.currentVersion) {
132
- if (this.hasUpdate(componentInformation)) {
133
- componentInformation.type = VersionInformationType.UpdateAvailable;
134
- componentInformation.message = `${VersionsService.UPDATE_AVAILABLE_MESSAGE} for component ${componentInformation.componentName}. Your current version is ${componentInformation.currentVersion} and the latest available version is ${componentInformation.latestVersion}.`;
135
- }
136
- else {
137
- componentInformation.type = VersionInformationType.UpToDate;
138
- componentInformation.message = `Component ${componentInformation.componentName} has ${componentInformation.currentVersion} version and is ${VersionsService.UP_TO_DATE_MESSAGE}.`;
139
- }
111
+ const runtimesVersions = await this.getRuntimesVersions(platform);
112
+ allComponents = allComponents.concat(runtimesVersions);
113
+ }
114
+ return allComponents.map((componentInformation) => {
115
+ if (componentInformation.currentVersion) {
116
+ if (this.hasUpdate(componentInformation)) {
117
+ componentInformation.type = VersionInformationType.UpdateAvailable;
118
+ componentInformation.message = `${VersionsService.UPDATE_AVAILABLE_MESSAGE} for component ${componentInformation.componentName}. Your current version is ${componentInformation.currentVersion} and the latest available version is ${componentInformation.latestVersion}.`;
140
119
  }
141
120
  else {
142
- componentInformation.type = VersionInformationType.NotInstalled;
143
- componentInformation.message = `Component ${componentInformation.componentName} is ${VersionsService.NOT_INSTALLED_MESSAGE}.`;
121
+ componentInformation.type = VersionInformationType.UpToDate;
122
+ componentInformation.message = `Component ${componentInformation.componentName} has ${componentInformation.currentVersion} version and is ${VersionsService.UP_TO_DATE_MESSAGE}.`;
144
123
  }
145
- return componentInformation;
146
- });
147
- }
148
- catch (error) {
149
- this.$logger.trace("Error while trying to get component information. Error is: ", error);
150
- return [];
151
- }
152
- });
153
- }
154
- printVersionsInformation(platform) {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- const versionsInformation = yield this.$terminalSpinnerService.execute({
157
- text: `Getting NativeScript components versions information...`,
158
- }, () => this.getAllComponentsVersions(platform));
159
- if (!helpers.isInteractive()) {
160
- versionsInformation.map((componentInformation) => this.$logger.info(componentInformation.message));
161
- }
162
- _.forEach(versionsInformation, (componentInformation) => {
163
- const spinner = this.$terminalSpinnerService.createSpinner();
164
- spinner.text = componentInformation.message;
165
- switch (componentInformation.type) {
166
- case VersionInformationType.UpToDate:
167
- spinner.succeed();
168
- break;
169
- case VersionInformationType.UpdateAvailable:
170
- spinner.warn();
171
- break;
172
- case VersionInformationType.NotInstalled:
173
- spinner.fail();
174
- break;
175
124
  }
125
+ else {
126
+ componentInformation.type = VersionInformationType.NotInstalled;
127
+ componentInformation.message = `Component ${componentInformation.componentName} is ${VersionsService.NOT_INSTALLED_MESSAGE}.`;
128
+ }
129
+ return componentInformation;
176
130
  });
131
+ }
132
+ catch (error) {
133
+ this.$logger.trace("Error while trying to get component information. Error is: ", error);
134
+ return [];
135
+ }
136
+ }
137
+ async printVersionsInformation(platform) {
138
+ const versionsInformation = await this.$terminalSpinnerService.execute({
139
+ text: `Getting NativeScript components versions information...`,
140
+ }, () => this.getAllComponentsVersions(platform));
141
+ if (!helpers.isInteractive()) {
142
+ versionsInformation.map((componentInformation) => this.$logger.info(componentInformation.message));
143
+ }
144
+ _.forEach(versionsInformation, (componentInformation) => {
145
+ const spinner = this.$terminalSpinnerService.createSpinner();
146
+ spinner.text = componentInformation.message;
147
+ switch (componentInformation.type) {
148
+ case VersionInformationType.UpToDate:
149
+ spinner.succeed();
150
+ break;
151
+ case VersionInformationType.UpdateAvailable:
152
+ spinner.warn();
153
+ break;
154
+ case VersionInformationType.NotInstalled:
155
+ spinner.fail();
156
+ break;
157
+ }
177
158
  });
178
159
  }
179
160
  getProjectData() {