@akylas/nativescript-cli 8.7.2 → 8.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. 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() {