@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.LogcatHelper = void 0;
13
4
  const byline = require("byline");
@@ -23,79 +14,76 @@ class LogcatHelper {
23
14
  this.$devicesService = $devicesService;
24
15
  this.mapDevicesLoggingData = Object.create(null);
25
16
  }
26
- start(options) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- const deviceIdentifier = options.deviceIdentifier;
29
- if (deviceIdentifier && !this.mapDevicesLoggingData[deviceIdentifier]) {
30
- this.mapDevicesLoggingData[deviceIdentifier] = {
31
- loggingProcess: null,
32
- lineStream: null,
33
- keepSingleProcess: options.keepSingleProcess,
34
- appStartTrackingProcess: null,
35
- rawLineStream: null,
36
- };
37
- const logcatStream = yield this.getLogcatStream(deviceIdentifier, options.pid);
38
- const lineStream = byline(logcatStream.stdout);
39
- this.mapDevicesLoggingData[deviceIdentifier].loggingProcess =
40
- logcatStream;
41
- this.mapDevicesLoggingData[deviceIdentifier].lineStream = lineStream;
42
- logcatStream.stderr.on("data", (data) => {
43
- this.$logger.trace("ADB logcat stderr: " + data.toString());
44
- });
45
- logcatStream.on("close", (code) => {
46
- try {
47
- this.forceStop(deviceIdentifier);
48
- if (code !== 0) {
49
- this.$logger.trace("ADB process exited with code " + code.toString());
50
- }
51
- }
52
- catch (err) {
53
- }
54
- });
55
- lineStream.on("data", (lineBuffer) => {
56
- const lines = (lineBuffer.toString() || "").split("\n");
57
- for (const line of lines) {
58
- this.$deviceLogProvider.logData(line, this.$devicePlatformsConstants.Android, deviceIdentifier);
59
- }
60
- });
61
- const appStartTrackingStream = yield this.getAppStartTrackingLogcatStream(deviceIdentifier, options.appId);
62
- this.mapDevicesLoggingData[deviceIdentifier].appStartTrackingProcess =
63
- appStartTrackingStream;
64
- const rawLineStream = byline(appStartTrackingStream.stdout);
65
- this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
66
- rawLineStream;
67
- rawLineStream.on("data", (lineBuffer) => {
68
- var _a, _b;
69
- if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
70
- return;
71
- const lines = (lineBuffer.toString() || "").split("\n");
72
- for (let line of lines) {
73
- if (line.includes("START") &&
74
- line.includes(options.appId) &&
75
- !line.includes(options.pid)) {
76
- this.forceStop(deviceIdentifier);
77
- (_b = options.onAppRestarted) === null || _b === void 0 ? void 0 : _b.call(options);
78
- }
17
+ async start(options) {
18
+ const deviceIdentifier = options.deviceIdentifier;
19
+ if (deviceIdentifier && !this.mapDevicesLoggingData[deviceIdentifier]) {
20
+ this.mapDevicesLoggingData[deviceIdentifier] = {
21
+ loggingProcess: null,
22
+ lineStream: null,
23
+ keepSingleProcess: options.keepSingleProcess,
24
+ appStartTrackingProcess: null,
25
+ rawLineStream: null,
26
+ };
27
+ const logcatStream = await this.getLogcatStream(deviceIdentifier, options.pid);
28
+ const lineStream = byline(logcatStream.stdout);
29
+ this.mapDevicesLoggingData[deviceIdentifier].loggingProcess =
30
+ logcatStream;
31
+ this.mapDevicesLoggingData[deviceIdentifier].lineStream = lineStream;
32
+ logcatStream.stderr.on("data", (data) => {
33
+ this.$logger.trace("ADB logcat stderr: " + data.toString());
34
+ });
35
+ logcatStream.on("close", (code) => {
36
+ try {
37
+ this.forceStop(deviceIdentifier);
38
+ if (code !== 0) {
39
+ this.$logger.trace("ADB process exited with code " + code.toString());
79
40
  }
80
- });
81
- }
82
- });
83
- }
84
- dump(deviceIdentifier) {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
87
- const logcatDumpStream = yield adb.executeCommand(["logcat", "-d"], {
88
- returnChildProcess: true,
41
+ }
42
+ catch (err) {
43
+ }
89
44
  });
90
- const lineStream = byline(logcatDumpStream.stdout);
91
- lineStream.on("data", (line) => {
92
- const lineText = line.toString();
93
- this.$logger.trace(lineText);
45
+ lineStream.on("data", (lineBuffer) => {
46
+ const lines = (lineBuffer.toString() || "").split("\n");
47
+ for (const line of lines) {
48
+ this.$deviceLogProvider.logData(line, this.$devicePlatformsConstants.Android, deviceIdentifier);
49
+ }
94
50
  });
95
- logcatDumpStream.on("close", (code) => {
96
- logcatDumpStream.removeAllListeners();
97
- lineStream.removeAllListeners();
51
+ const appStartTrackingStream = await this.getAppStartTrackingLogcatStream(deviceIdentifier, options.appId);
52
+ this.mapDevicesLoggingData[deviceIdentifier].appStartTrackingProcess =
53
+ appStartTrackingStream;
54
+ const rawLineStream = byline(appStartTrackingStream.stdout);
55
+ this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
56
+ rawLineStream;
57
+ rawLineStream.on("data", (lineBuffer) => {
58
+ var _a, _b, _c, _d;
59
+ if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
60
+ return;
61
+ const lines = (lineBuffer.toString() || "").split("\n");
62
+ for (let line of lines) {
63
+ const startProc = /Start proc (?<pid>[0-9]+):(?<appId>.+?)\//.exec(line);
64
+ if (startProc &&
65
+ ((_b = startProc.groups) === null || _b === void 0 ? void 0 : _b.appId) === options.appId &&
66
+ ((_c = startProc.groups) === null || _c === void 0 ? void 0 : _c.pid) !== options.pid) {
67
+ this.forceStop(deviceIdentifier);
68
+ (_d = options.onAppRestarted) === null || _d === void 0 ? void 0 : _d.call(options);
69
+ }
70
+ }
98
71
  });
72
+ }
73
+ }
74
+ async dump(deviceIdentifier) {
75
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
76
+ const logcatDumpStream = await adb.executeCommand(["logcat", "-d"], {
77
+ returnChildProcess: true,
78
+ });
79
+ const lineStream = byline(logcatDumpStream.stdout);
80
+ lineStream.on("data", (line) => {
81
+ const lineText = line.toString();
82
+ this.$logger.trace(lineText);
83
+ });
84
+ logcatDumpStream.on("close", (code) => {
85
+ logcatDumpStream.removeAllListeners();
86
+ lineStream.removeAllListeners();
99
87
  });
100
88
  }
101
89
  stop(deviceIdentifier) {
@@ -114,51 +102,53 @@ class LogcatHelper {
114
102
  (_e = loggingData.lineStream) === null || _e === void 0 ? void 0 : _e.removeAllListeners();
115
103
  delete this.mapDevicesLoggingData[deviceIdentifier];
116
104
  }
117
- isLogcatPidSupported(deviceIdentifier) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const device = yield this.$devicesService.getDevice(deviceIdentifier);
120
- const minAndroidWithLogcatPidSupport = "7.0.0";
121
- return (!!device.deviceInfo.version &&
122
- semver.gte(semver.coerce(device.deviceInfo.version), minAndroidWithLogcatPidSupport));
123
- });
105
+ async isLogcatPidSupported(deviceIdentifier) {
106
+ const device = await this.$devicesService.getDevice(deviceIdentifier);
107
+ const minAndroidWithLogcatPidSupport = "7.0.0";
108
+ return (!!device.deviceInfo.version &&
109
+ semver.gte(semver.coerce(device.deviceInfo.version), minAndroidWithLogcatPidSupport));
124
110
  }
125
- getLogcatStream(deviceIdentifier, pid) {
126
- return __awaiter(this, void 0, void 0, function* () {
127
- const isLogcatPidSupported = yield this.isLogcatPidSupported(deviceIdentifier);
128
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
129
- const logcatCommand = ["logcat", "-T", "1"];
130
- const acceptedTags = [
131
- "chromium",
132
- '"Web Console"',
133
- "JS",
134
- "System.err",
135
- "TNS.Native",
136
- "TNS.Java",
137
- ];
138
- if (pid && isLogcatPidSupported) {
139
- logcatCommand.push(`--pid=${pid}`);
140
- acceptedTags.forEach((tag) => {
141
- logcatCommand.push("-s", tag);
142
- });
143
- }
144
- const logcatStream = yield adb.executeCommand(logcatCommand, {
145
- returnChildProcess: true,
111
+ async getLogcatStream(deviceIdentifier, pid) {
112
+ const isLogcatPidSupported = await this.isLogcatPidSupported(deviceIdentifier);
113
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
114
+ const logcatCommand = ["logcat", "-T", "1"];
115
+ const acceptedTags = [
116
+ "chromium",
117
+ '"Web Console"',
118
+ "JS",
119
+ "System.err",
120
+ "TNS.Native",
121
+ "TNS.Java",
122
+ ];
123
+ if (pid && isLogcatPidSupported) {
124
+ logcatCommand.push(`--pid=${pid}`);
125
+ acceptedTags.forEach((tag) => {
126
+ logcatCommand.push("-s", tag);
146
127
  });
147
- return logcatStream;
128
+ }
129
+ const logcatStream = await adb.executeCommand(logcatCommand, {
130
+ returnChildProcess: true,
148
131
  });
132
+ return logcatStream;
149
133
  }
150
- getAppStartTrackingLogcatStream(deviceIdentifier, appId) {
151
- return __awaiter(this, void 0, void 0, function* () {
152
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
153
- const logcatCommand = [`logcat`, `-b`, `system`, `-T`, `1`];
154
- if (appId) {
155
- logcatCommand.push(`--regex=START.*${appId}`);
156
- }
157
- const appStartTrackingStream = yield adb.executeCommand(logcatCommand, {
158
- returnChildProcess: true,
159
- });
160
- return appStartTrackingStream;
134
+ async getAppStartTrackingLogcatStream(deviceIdentifier, appId) {
135
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
136
+ const logcatCommand = [
137
+ `logcat`,
138
+ `-b`,
139
+ `system`,
140
+ `-T`,
141
+ `1`,
142
+ "-s",
143
+ "ActivityManager",
144
+ ];
145
+ if (appId) {
146
+ logcatCommand.push(`--regex=START.*${appId}`);
147
+ }
148
+ const appStartTrackingStream = await adb.executeCommand(logcatCommand, {
149
+ returnChildProcess: true,
161
150
  });
151
+ return appStartTrackingStream;
162
152
  }
163
153
  }
164
154
  exports.LogcatHelper = LogcatHelper;
@@ -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.ApplicationManagerBase = void 0;
13
4
  const events_1 = require("events");
@@ -21,115 +12,101 @@ class ApplicationManagerBase extends events_1.EventEmitter {
21
12
  this.$deviceLogProvider = $deviceLogProvider;
22
13
  this.lastAvailableDebuggableAppViews = {};
23
14
  }
24
- setTransferredAppFiles(files) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- for (const file of files) {
27
- yield this.$deviceLogProvider.setSourceFileLocation(file);
28
- }
29
- });
15
+ async setTransferredAppFiles(files) {
16
+ for (const file of files) {
17
+ await this.$deviceLogProvider.setSourceFileLocation(file);
18
+ }
30
19
  }
31
- reinstallApplication(appIdentifier, packageFilePath, buildData) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- const isApplicationInstalled = yield this.isApplicationInstalled(appIdentifier);
34
- if (isApplicationInstalled && (buildData === null || buildData === void 0 ? void 0 : buildData.clean)) {
35
- yield this.uninstallApplication(appIdentifier);
36
- }
37
- yield this.installApplication(packageFilePath, appIdentifier, buildData);
38
- });
20
+ async reinstallApplication(appIdentifier, packageFilePath, buildData) {
21
+ const isApplicationInstalled = await this.isApplicationInstalled(appIdentifier);
22
+ if (isApplicationInstalled && (buildData === null || buildData === void 0 ? void 0 : buildData.clean)) {
23
+ await this.uninstallApplication(appIdentifier);
24
+ }
25
+ await this.installApplication(packageFilePath, appIdentifier, buildData);
39
26
  }
40
- restartApplication(appData) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- yield this.stopApplication(appData);
43
- yield this.startApplication(appData);
44
- });
27
+ async restartApplication(appData) {
28
+ await this.stopApplication(appData);
29
+ await this.startApplication(appData);
45
30
  }
46
- isApplicationInstalled(appIdentifier) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- yield this.checkForApplicationUpdates();
49
- return _.includes(this.lastInstalledAppIdentifiers, appIdentifier);
50
- });
31
+ async isApplicationInstalled(appIdentifier) {
32
+ await this.checkForApplicationUpdates();
33
+ return _.includes(this.lastInstalledAppIdentifiers, appIdentifier);
51
34
  }
52
- checkForApplicationUpdates() {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- if (!this.checkForApplicationUpdatesPromise) {
55
- this.checkForApplicationUpdatesPromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
56
- let isFulfilled = false;
57
- try {
58
- const currentlyInstalledAppIdentifiers = yield this.getInstalledApplications();
59
- const previouslyInstalledAppIdentifiers = this.lastInstalledAppIdentifiers || [];
60
- const newAppIdentifiers = _.difference(currentlyInstalledAppIdentifiers, previouslyInstalledAppIdentifiers);
61
- const removedAppIdentifiers = _.difference(previouslyInstalledAppIdentifiers, currentlyInstalledAppIdentifiers);
62
- this.lastInstalledAppIdentifiers = currentlyInstalledAppIdentifiers;
63
- _.each(newAppIdentifiers, (appIdentifier) => this.emit("applicationInstalled", appIdentifier));
64
- _.each(removedAppIdentifiers, (appIdentifier) => this.emit("applicationUninstalled", appIdentifier));
65
- yield this.checkForAvailableDebuggableAppsChanges();
66
- }
67
- catch (err) {
68
- isFulfilled = true;
69
- reject(err);
70
- }
71
- finally {
72
- this.checkForApplicationUpdatesPromise = null;
73
- if (!isFulfilled) {
74
- resolve();
75
- }
35
+ async checkForApplicationUpdates() {
36
+ if (!this.checkForApplicationUpdatesPromise) {
37
+ this.checkForApplicationUpdatesPromise = new Promise(async (resolve, reject) => {
38
+ let isFulfilled = false;
39
+ try {
40
+ const currentlyInstalledAppIdentifiers = await this.getInstalledApplications();
41
+ const previouslyInstalledAppIdentifiers = this.lastInstalledAppIdentifiers || [];
42
+ const newAppIdentifiers = _.difference(currentlyInstalledAppIdentifiers, previouslyInstalledAppIdentifiers);
43
+ const removedAppIdentifiers = _.difference(previouslyInstalledAppIdentifiers, currentlyInstalledAppIdentifiers);
44
+ this.lastInstalledAppIdentifiers = currentlyInstalledAppIdentifiers;
45
+ _.each(newAppIdentifiers, (appIdentifier) => this.emit("applicationInstalled", appIdentifier));
46
+ _.each(removedAppIdentifiers, (appIdentifier) => this.emit("applicationUninstalled", appIdentifier));
47
+ await this.checkForAvailableDebuggableAppsChanges();
48
+ }
49
+ catch (err) {
50
+ isFulfilled = true;
51
+ reject(err);
52
+ }
53
+ finally {
54
+ this.checkForApplicationUpdatesPromise = null;
55
+ if (!isFulfilled) {
56
+ resolve();
76
57
  }
77
- }));
78
- }
79
- return this.checkForApplicationUpdatesPromise;
80
- });
58
+ }
59
+ });
60
+ }
61
+ return this.checkForApplicationUpdatesPromise;
81
62
  }
82
- tryStartApplication(appData) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- try {
85
- yield this.startApplication(appData);
86
- }
87
- catch (err) {
88
- this.$logger.trace(`Unable to start application ${appData.appId} with name ${appData.projectName}. Error is: ${err.message}`);
63
+ async tryStartApplication(appData) {
64
+ try {
65
+ await this.startApplication(appData);
66
+ }
67
+ catch (err) {
68
+ this.$logger.trace(`Unable to start application ${appData.appId} with name ${appData.projectName}. Error is: ${err.message}`);
69
+ }
70
+ }
71
+ async checkForAvailableDebuggableAppsChanges() {
72
+ const currentlyAvailableDebuggableApps = await this.getDebuggableApps();
73
+ const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
74
+ const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
75
+ const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
76
+ this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
77
+ _.each(newAvailableDebuggableApps, (appInfo) => {
78
+ this.emit("debuggableAppFound", appInfo);
79
+ });
80
+ _.each(notAvailableAppsForDebugging, (appInfo) => {
81
+ this.emit("debuggableAppLost", appInfo);
82
+ if (_.has(this.lastAvailableDebuggableAppViews, appInfo.appIdentifier)) {
83
+ delete this.lastAvailableDebuggableAppViews[appInfo.appIdentifier];
89
84
  }
90
85
  });
91
- }
92
- checkForAvailableDebuggableAppsChanges() {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const currentlyAvailableDebuggableApps = yield this.getDebuggableApps();
95
- const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
96
- const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
97
- const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
98
- this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
99
- _.each(newAvailableDebuggableApps, (appInfo) => {
100
- this.emit("debuggableAppFound", appInfo);
86
+ const cordovaDebuggableAppIdentifiers = _(currentlyAvailableDebuggableApps)
87
+ .filter((c) => c.framework === constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova)
88
+ .map((c) => c.appIdentifier)
89
+ .value();
90
+ const currentlyAvailableAppViews = await this.getDebuggableAppViews(cordovaDebuggableAppIdentifiers);
91
+ _.each(currentlyAvailableAppViews, (currentlyAvailableViews, appIdentifier) => {
92
+ const previouslyAvailableViews = this.lastAvailableDebuggableAppViews[appIdentifier];
93
+ const newAvailableViews = _.differenceBy(currentlyAvailableViews, previouslyAvailableViews, "id");
94
+ const notAvailableViews = _.differenceBy(previouslyAvailableViews, currentlyAvailableViews, "id");
95
+ _.each(notAvailableViews, (debugWebViewInfo) => {
96
+ this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
101
97
  });
102
- _.each(notAvailableAppsForDebugging, (appInfo) => {
103
- this.emit("debuggableAppLost", appInfo);
104
- if (_.has(this.lastAvailableDebuggableAppViews, appInfo.appIdentifier)) {
105
- delete this.lastAvailableDebuggableAppViews[appInfo.appIdentifier];
106
- }
98
+ _.each(newAvailableViews, (debugWebViewInfo) => {
99
+ this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
107
100
  });
108
- const cordovaDebuggableAppIdentifiers = _(currentlyAvailableDebuggableApps)
109
- .filter((c) => c.framework === constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova)
110
- .map((c) => c.appIdentifier)
111
- .value();
112
- const currentlyAvailableAppViews = yield this.getDebuggableAppViews(cordovaDebuggableAppIdentifiers);
113
- _.each(currentlyAvailableAppViews, (currentlyAvailableViews, appIdentifier) => {
114
- const previouslyAvailableViews = this.lastAvailableDebuggableAppViews[appIdentifier];
115
- const newAvailableViews = _.differenceBy(currentlyAvailableViews, previouslyAvailableViews, "id");
116
- const notAvailableViews = _.differenceBy(previouslyAvailableViews, currentlyAvailableViews, "id");
117
- _.each(notAvailableViews, (debugWebViewInfo) => {
118
- this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
119
- });
120
- _.each(newAvailableViews, (debugWebViewInfo) => {
121
- this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
122
- });
123
- const keptViews = _.differenceBy(currentlyAvailableViews, newAvailableViews, "id");
124
- _.each(keptViews, (view) => {
125
- const previousTimeViewInfo = _.find(previouslyAvailableViews, (previousView) => previousView.id === view.id);
126
- if (!_.isEqual(view, previousTimeViewInfo)) {
127
- this.emit("debuggableViewChanged", appIdentifier, view);
128
- }
129
- });
130
- this.lastAvailableDebuggableAppViews[appIdentifier] =
131
- currentlyAvailableViews;
101
+ const keptViews = _.differenceBy(currentlyAvailableViews, newAvailableViews, "id");
102
+ _.each(keptViews, (view) => {
103
+ const previousTimeViewInfo = _.find(previouslyAvailableViews, (previousView) => previousView.id === view.id);
104
+ if (!_.isEqual(view, previousTimeViewInfo)) {
105
+ this.emit("debuggableViewChanged", appIdentifier, view);
106
+ }
132
107
  });
108
+ this.lastAvailableDebuggableAppViews[appIdentifier] =
109
+ currentlyAvailableViews;
133
110
  });
134
111
  }
135
112
  }
@@ -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.DeviceLogProviderBase = void 0;
13
4
  const events_1 = require("events");
@@ -20,15 +11,13 @@ class DeviceLogProviderBase extends events_1.EventEmitter {
20
11
  this.$logSourceMapService = $logSourceMapService;
21
12
  this.devicesLogOptions = {};
22
13
  }
23
- setSourceFileLocation(pathToOriginalFile) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- try {
26
- yield this.$logSourceMapService.setSourceMapConsumerForFile(pathToOriginalFile);
27
- }
28
- catch (err) {
29
- this.$logger.trace("Error while trying to set source map file", err);
30
- }
31
- });
14
+ async setSourceFileLocation(pathToOriginalFile) {
15
+ try {
16
+ await this.$logSourceMapService.setSourceMapConsumerForFile(pathToOriginalFile);
17
+ }
18
+ catch (err) {
19
+ this.$logger.trace("Error while trying to set source map file", err);
20
+ }
32
21
  }
33
22
  setApplicationPidForDevice(deviceIdentifier, pid) {
34
23
  this.setDeviceLogOptionsProperty(deviceIdentifier, (deviceLogOptions) => deviceLogOptions.applicationPid, pid);
@@ -7,6 +7,7 @@ const yok_1 = require("../yok");
7
7
  class EmulatorHelper {
8
8
  constructor() {
9
9
  this.mapAndroidApiLevelToVersion = {
10
+ "android-35": "15.0.0",
10
11
  "android-34": "14.0.0",
11
12
  "android-33": "13.0.0",
12
13
  "android-32": "12.0.0",