nativescript 8.9.0-dev.2 → 8.9.0-dev.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 (345) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/widget-ios.md +24 -0
  3. package/docs/man_pages/project/configuration/widget.md +24 -0
  4. package/docs/man_pages/start.md +1 -1
  5. package/lib/android-tools-info.js +11 -22
  6. package/lib/base-package-manager.js +53 -70
  7. package/lib/bun-package-manager.js +75 -98
  8. package/lib/color.js +4 -4
  9. package/lib/commands/add-platform.js +14 -30
  10. package/lib/commands/apple-login.js +18 -29
  11. package/lib/commands/appstore-list.js +34 -45
  12. package/lib/commands/appstore-upload.js +54 -67
  13. package/lib/commands/build.js +55 -87
  14. package/lib/commands/clean.js +169 -184
  15. package/lib/commands/command-base.js +14 -27
  16. package/lib/commands/config.js +49 -68
  17. package/lib/commands/create-project.js +215 -234
  18. package/lib/commands/debug.js +66 -88
  19. package/lib/commands/deploy.js +28 -44
  20. package/lib/commands/embedding/embed.js +37 -56
  21. package/lib/commands/extensibility/install-extension.js +5 -16
  22. package/lib/commands/extensibility/list-extensions.js +13 -24
  23. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  24. package/lib/commands/fonts.js +30 -41
  25. package/lib/commands/generate-assets.js +13 -28
  26. package/lib/commands/generate-help.js +2 -13
  27. package/lib/commands/generate.js +49 -60
  28. package/lib/commands/info.js +2 -13
  29. package/lib/commands/install.js +34 -49
  30. package/lib/commands/list-platforms.js +14 -25
  31. package/lib/commands/migrate.js +15 -26
  32. package/lib/commands/native-add.js +23 -46
  33. package/lib/commands/platform-clean.js +19 -32
  34. package/lib/commands/plugin/add-plugin.js +12 -25
  35. package/lib/commands/plugin/build-plugin.js +31 -44
  36. package/lib/commands/plugin/create-plugin.js +114 -137
  37. package/lib/commands/plugin/list-plugins.js +22 -33
  38. package/lib/commands/plugin/remove-plugin.js +21 -34
  39. package/lib/commands/plugin/update-plugin.js +20 -33
  40. package/lib/commands/post-install.js +25 -38
  41. package/lib/commands/prepare.js +19 -35
  42. package/lib/commands/preview.js +50 -63
  43. package/lib/commands/remove-platform.js +7 -18
  44. package/lib/commands/resources/resources-update.js +14 -27
  45. package/lib/commands/run.js +55 -76
  46. package/lib/commands/start.js +6 -19
  47. package/lib/commands/test-init.js +126 -137
  48. package/lib/commands/test.js +72 -95
  49. package/lib/commands/typings.js +126 -142
  50. package/lib/commands/update-platform.js +26 -39
  51. package/lib/commands/update.js +31 -44
  52. package/lib/commands/widget.js +408 -357
  53. package/lib/common/child-process.js +53 -72
  54. package/lib/common/codeGeneration/code-entity.js +1 -1
  55. package/lib/common/codeGeneration/code-printer.js +1 -1
  56. package/lib/common/command-params.js +7 -18
  57. package/lib/common/commands/analytics.js +29 -42
  58. package/lib/common/commands/autocompletion.js +41 -58
  59. package/lib/common/commands/device/device-log-stream.js +12 -23
  60. package/lib/common/commands/device/get-file.js +23 -34
  61. package/lib/common/commands/device/list-applications.js +12 -23
  62. package/lib/common/commands/device/list-devices.js +72 -87
  63. package/lib/common/commands/device/list-files.js +24 -35
  64. package/lib/common/commands/device/put-file.js +23 -34
  65. package/lib/common/commands/device/run-application.js +12 -25
  66. package/lib/common/commands/device/stop-application.js +11 -22
  67. package/lib/common/commands/device/uninstall-application.js +6 -17
  68. package/lib/common/commands/generate-messages.js +17 -28
  69. package/lib/common/commands/help.js +20 -33
  70. package/lib/common/commands/package-manager-get.js +6 -17
  71. package/lib/common/commands/package-manager-set.js +9 -20
  72. package/lib/common/commands/post-install.js +2 -13
  73. package/lib/common/commands/preuninstall.js +27 -42
  74. package/lib/common/commands/proxy/proxy-base.js +11 -22
  75. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  76. package/lib/common/commands/proxy/proxy-get.js +3 -14
  77. package/lib/common/commands/proxy/proxy-set.js +87 -100
  78. package/lib/common/constants.js +11 -11
  79. package/lib/common/decorators.js +10 -22
  80. package/lib/common/dispatchers.js +84 -101
  81. package/lib/common/errors.js +92 -107
  82. package/lib/common/file-system.js +110 -132
  83. package/lib/common/header.js +1 -2
  84. package/lib/common/helpers.js +149 -178
  85. package/lib/common/host-info.js +40 -53
  86. package/lib/common/http-client.js +104 -119
  87. package/lib/common/logger/appenders/cli-appender.js +1 -2
  88. package/lib/common/logger/appenders/emit-appender.js +1 -2
  89. package/lib/common/logger/layouts/cli-layout.js +1 -2
  90. package/lib/common/logger/logger.js +4 -4
  91. package/lib/common/mobile/android/android-application-manager.js +138 -159
  92. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  93. package/lib/common/mobile/android/android-debug-bridge.js +92 -117
  94. package/lib/common/mobile/android/android-device-file-system.js +101 -134
  95. package/lib/common/mobile/android/android-device-hash-service.js +52 -77
  96. package/lib/common/mobile/android/android-device.js +73 -90
  97. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  98. package/lib/common/mobile/android/android-log-filter.js +1 -1
  99. package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
  100. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  101. package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
  102. package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
  103. package/lib/common/mobile/android/logcat-helper.js +114 -133
  104. package/lib/common/mobile/application-manager-base.js +89 -112
  105. package/lib/common/mobile/device-log-provider-base.js +7 -18
  106. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  107. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  108. package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
  109. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  110. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  111. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
  112. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  113. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
  114. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
  115. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  116. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  117. package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
  118. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
  119. package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
  120. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  121. package/lib/common/mobile/mobile-core/devices-service.js +400 -450
  122. package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
  123. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
  124. package/lib/common/mobile/mobile-helper.js +15 -26
  125. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  126. package/lib/common/opener.js +2 -2
  127. package/lib/common/prompter.js +91 -106
  128. package/lib/common/queue.js +9 -20
  129. package/lib/common/services/auto-completion-service.js +40 -53
  130. package/lib/common/services/cancellation.js +17 -28
  131. package/lib/common/services/commands-service.js +156 -179
  132. package/lib/common/services/help-service.js +130 -155
  133. package/lib/common/services/hooks-service.js +99 -114
  134. package/lib/common/services/ios-notification-service.js +21 -34
  135. package/lib/common/services/json-file-settings-service.js +56 -75
  136. package/lib/common/services/lock-service.js +35 -52
  137. package/lib/common/services/message-contract-generator.js +35 -46
  138. package/lib/common/services/micro-templating-service.js +6 -17
  139. package/lib/common/services/net-service.js +92 -109
  140. package/lib/common/services/project-files-manager.js +10 -23
  141. package/lib/common/services/proxy-service.js +13 -24
  142. package/lib/common/services/qr.js +13 -24
  143. package/lib/common/services/settings-service.js +1 -1
  144. package/lib/common/services/xcode-select-service.js +20 -35
  145. package/lib/common/utils.js +2 -2
  146. package/lib/common/validators/project-name-validator.js +1 -1
  147. package/lib/common/validators/validation-result.js +1 -1
  148. package/lib/common/verify-node-version.js +2 -3
  149. package/lib/common/yok.js +25 -38
  150. package/lib/config.js +41 -56
  151. package/lib/constants.js +24 -24
  152. package/lib/controllers/build-controller.js +82 -99
  153. package/lib/controllers/debug-controller.js +111 -132
  154. package/lib/controllers/deploy-controller.js +15 -23
  155. package/lib/controllers/migrate-controller.js +780 -853
  156. package/lib/controllers/platform-controller.js +74 -89
  157. package/lib/controllers/prepare-controller.js +241 -270
  158. package/lib/controllers/run-controller.js +411 -425
  159. package/lib/controllers/update-controller-base.js +16 -29
  160. package/lib/controllers/update-controller.js +101 -126
  161. package/lib/data/prepare-data.js +4 -1
  162. package/lib/definitions/project.d.ts +24 -24
  163. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  164. package/lib/detached-processes/cleanup-process.js +16 -25
  165. package/lib/device-path-provider.js +23 -34
  166. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
  167. package/lib/device-sockets/ios/notification.js +1 -1
  168. package/lib/device-sockets/ios/socket-request-executor.js +26 -41
  169. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  170. package/lib/helpers/deploy-command-helper.js +44 -49
  171. package/lib/helpers/key-command-helper.js +4 -13
  172. package/lib/helpers/livesync-command-helper.js +138 -153
  173. package/lib/helpers/network-connectivity-validator.js +6 -17
  174. package/lib/helpers/options-track-helper.js +6 -17
  175. package/lib/helpers/platform-command-helper.js +103 -124
  176. package/lib/key-commands/index.js +150 -200
  177. package/lib/nativescript-cli.js +5 -14
  178. package/lib/node-package-manager.js +90 -113
  179. package/lib/options.js +4 -13
  180. package/lib/package-installation-manager.js +132 -167
  181. package/lib/package-manager.js +64 -87
  182. package/lib/platform-command-param.js +4 -15
  183. package/lib/pnpm-package-manager.js +60 -79
  184. package/lib/project-data.js +1 -1
  185. package/lib/providers/project-files-provider.js +1 -1
  186. package/lib/services/analytics/analytics-broker-process.js +13 -22
  187. package/lib/services/analytics/analytics-broker.js +17 -30
  188. package/lib/services/analytics/analytics-service.js +165 -201
  189. package/lib/services/analytics/google-analytics-provider.js +41 -56
  190. package/lib/services/analytics-settings-service.js +15 -32
  191. package/lib/services/android/android-bundle-tool-service.js +43 -60
  192. package/lib/services/android/gradle-build-args-service.js +10 -21
  193. package/lib/services/android/gradle-build-service.js +22 -35
  194. package/lib/services/android/gradle-command-service.js +22 -35
  195. package/lib/services/android-device-debug-service.js +92 -119
  196. package/lib/services/android-plugin-build-service.js +219 -245
  197. package/lib/services/android-project-service.js +134 -179
  198. package/lib/services/android-resources-migration-service.js +57 -70
  199. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  200. package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
  201. package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
  202. package/lib/services/assets-generation/assets-generation-service.js +114 -128
  203. package/lib/services/build-artifacts-service.js +9 -20
  204. package/lib/services/build-info-file-service.js +20 -35
  205. package/lib/services/cleanup-service.js +47 -76
  206. package/lib/services/cocoapods-service.js +124 -145
  207. package/lib/services/device/device-install-app-service.js +54 -71
  208. package/lib/services/doctor-service.js +106 -125
  209. package/lib/services/extensibility-service.js +87 -106
  210. package/lib/services/files-hash-service.js +26 -43
  211. package/lib/services/hmr-status-service.js +1 -1
  212. package/lib/services/initialize-service.js +38 -51
  213. package/lib/services/ios/export-options-plist-service.js +41 -54
  214. package/lib/services/ios/ios-signing-service.js +171 -190
  215. package/lib/services/ios/spm-service.js +52 -65
  216. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  217. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  218. package/lib/services/ios/xcodebuild-service.js +52 -71
  219. package/lib/services/ios-debugger-port-service.js +24 -37
  220. package/lib/services/ios-device-debug-service.js +75 -102
  221. package/lib/services/ios-entitlements-service.js +31 -42
  222. package/lib/services/ios-extensions-service.js +18 -29
  223. package/lib/services/ios-project-service.js +530 -591
  224. package/lib/services/ios-provision-service.js +110 -131
  225. package/lib/services/ios-watch-app-service.js +21 -32
  226. package/lib/services/ip-service.js +39 -54
  227. package/lib/services/itmstransporter-service.js +129 -152
  228. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  229. package/lib/services/livesync/android-device-livesync-service.js +121 -150
  230. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
  231. package/lib/services/livesync/android-livesync-service.js +14 -35
  232. package/lib/services/livesync/android-livesync-tool.js +90 -113
  233. package/lib/services/livesync/device-livesync-service-base.js +16 -29
  234. package/lib/services/livesync/ios-device-livesync-service.js +120 -149
  235. package/lib/services/livesync/ios-livesync-service.js +43 -59
  236. package/lib/services/livesync/platform-livesync-service-base.js +98 -123
  237. package/lib/services/log-parser-service.js +1 -1
  238. package/lib/services/log-source-map-service.js +31 -42
  239. package/lib/services/marking-mode-service.js +17 -30
  240. package/lib/services/npm-config-service.js +1 -1
  241. package/lib/services/pacote-service.js +54 -69
  242. package/lib/services/performance-service.js +1 -1
  243. package/lib/services/platform/add-platform-service.js +57 -78
  244. package/lib/services/platform/platform-validation-service.js +22 -33
  245. package/lib/services/platform/prepare-native-platform-service.js +51 -64
  246. package/lib/services/platform-environment-requirements.js +27 -38
  247. package/lib/services/plugins-service.js +126 -151
  248. package/lib/services/project-backup-service.js +1 -1
  249. package/lib/services/project-changes-service.js +126 -143
  250. package/lib/services/project-cleanup-service.js +65 -78
  251. package/lib/services/project-config-service.js +78 -88
  252. package/lib/services/project-data-service.js +112 -129
  253. package/lib/services/project-name-service.js +28 -43
  254. package/lib/services/project-service.js +90 -109
  255. package/lib/services/project-templates-service.js +52 -67
  256. package/lib/services/start-service.js +41 -59
  257. package/lib/services/temp-service.js +8 -21
  258. package/lib/services/terminal-spinner-service.js +15 -26
  259. package/lib/services/test-execution-service.js +64 -77
  260. package/lib/services/test-initialization-service.js +2 -2
  261. package/lib/services/timeline-profiler-service.js +1 -1
  262. package/lib/services/versions-service.js +120 -139
  263. package/lib/services/webpack/webpack-compiler-service.js +228 -251
  264. package/lib/services/xcconfig-service.js +8 -19
  265. package/lib/sys-info.js +45 -62
  266. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  267. package/lib/yarn-package-manager.js +59 -78
  268. package/lib/yarn2-package-manager.js +62 -81
  269. package/package.json +67 -82
  270. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  271. package/node_modules/@npmcli/move-file/README.md +0 -69
  272. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  281. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  282. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  283. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  284. package/node_modules/@npmcli/move-file/package.json +0 -47
  285. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  286. package/node_modules/balanced-match/LICENSE.md +0 -21
  287. package/node_modules/balanced-match/README.md +0 -97
  288. package/node_modules/balanced-match/index.js +0 -62
  289. package/node_modules/balanced-match/package.json +0 -48
  290. package/node_modules/concat-map/.travis.yml +0 -4
  291. package/node_modules/concat-map/LICENSE +0 -18
  292. package/node_modules/concat-map/README.markdown +0 -62
  293. package/node_modules/concat-map/example/map.js +0 -6
  294. package/node_modules/concat-map/index.js +0 -13
  295. package/node_modules/concat-map/package.json +0 -43
  296. package/node_modules/concat-map/test/map.js +0 -39
  297. package/node_modules/fs.realpath/LICENSE +0 -43
  298. package/node_modules/fs.realpath/README.md +0 -33
  299. package/node_modules/fs.realpath/index.js +0 -66
  300. package/node_modules/fs.realpath/old.js +0 -303
  301. package/node_modules/fs.realpath/package.json +0 -26
  302. package/node_modules/inflight/LICENSE +0 -15
  303. package/node_modules/inflight/README.md +0 -37
  304. package/node_modules/inflight/inflight.js +0 -54
  305. package/node_modules/inflight/package.json +0 -29
  306. package/node_modules/inherits/LICENSE +0 -16
  307. package/node_modules/inherits/README.md +0 -42
  308. package/node_modules/inherits/inherits.js +0 -9
  309. package/node_modules/inherits/inherits_browser.js +0 -27
  310. package/node_modules/inherits/package.json +0 -29
  311. package/node_modules/once/LICENSE +0 -15
  312. package/node_modules/once/README.md +0 -79
  313. package/node_modules/once/once.js +0 -42
  314. package/node_modules/once/package.json +0 -33
  315. package/node_modules/path-is-absolute/index.js +0 -20
  316. package/node_modules/path-is-absolute/license +0 -21
  317. package/node_modules/path-is-absolute/package.json +0 -43
  318. package/node_modules/path-is-absolute/readme.md +0 -59
  319. package/node_modules/rimraf/LICENSE +0 -15
  320. package/node_modules/rimraf/README.md +0 -101
  321. package/node_modules/rimraf/bin.js +0 -68
  322. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  323. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  324. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  325. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  326. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  327. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  328. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  329. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  330. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  331. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  332. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  333. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  334. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  335. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  336. package/node_modules/rimraf/package.json +0 -32
  337. package/node_modules/rimraf/rimraf.js +0 -360
  338. package/node_modules/stringify-package/LICENSE +0 -13
  339. package/node_modules/stringify-package/README.md +0 -55
  340. package/node_modules/stringify-package/index.js +0 -18
  341. package/node_modules/stringify-package/package.json +0 -38
  342. package/node_modules/wrappy/LICENSE +0 -15
  343. package/node_modules/wrappy/README.md +0 -36
  344. package/node_modules/wrappy/package.json +0 -29
  345. package/node_modules/wrappy/wrappy.js +0 -33
@@ -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,82 +14,78 @@ 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
- // Ignore the error, the process is dead.
54
- }
55
- });
56
- lineStream.on("data", (lineBuffer) => {
57
- const lines = (lineBuffer.toString() || "").split("\n");
58
- for (const line of lines) {
59
- this.$deviceLogProvider.logData(line, this.$devicePlatformsConstants.Android, deviceIdentifier);
60
- }
61
- });
62
- const appStartTrackingStream = yield this.getAppStartTrackingLogcatStream(deviceIdentifier, options.appId);
63
- this.mapDevicesLoggingData[deviceIdentifier].appStartTrackingProcess =
64
- appStartTrackingStream;
65
- const rawLineStream = byline(appStartTrackingStream.stdout);
66
- this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
67
- rawLineStream;
68
- rawLineStream.on("data", (lineBuffer) => {
69
- var _a, _b, _c, _d;
70
- if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
71
- return;
72
- const lines = (lineBuffer.toString() || "").split("\n");
73
- for (let line of lines) {
74
- // 2024-06-26 16:43:22.286 630-659 ActivityManager system_server I Start proc 8854:org.nativescript.uitestsapp/u0a190 for next-top-activity {org.nativescript.uitestsapp/com.tns.NativeScriptActivity}
75
- const startProc = /Start proc (?<pid>[0-9]+):(?<appId>.+?)\//.exec(line);
76
- if (startProc &&
77
- ((_b = startProc.groups) === null || _b === void 0 ? void 0 : _b.appId) === options.appId &&
78
- ((_c = startProc.groups) === null || _c === void 0 ? void 0 : _c.pid) !== options.pid) {
79
- this.forceStop(deviceIdentifier);
80
- (_d = options.onAppRestarted) === null || _d === void 0 ? void 0 : _d.call(options);
81
- }
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());
82
40
  }
83
- });
84
- }
85
- });
86
- }
87
- dump(deviceIdentifier) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
90
- const logcatDumpStream = yield adb.executeCommand(["logcat", "-d"], {
91
- returnChildProcess: true,
41
+ }
42
+ catch (err) {
43
+ // Ignore the error, the process is dead.
44
+ }
92
45
  });
93
- const lineStream = byline(logcatDumpStream.stdout);
94
- lineStream.on("data", (line) => {
95
- const lineText = line.toString();
96
- this.$logger.trace(lineText);
46
+ lineStream.on("data", (lineBuffer) => {
47
+ const lines = (lineBuffer.toString() || "").split("\n");
48
+ for (const line of lines) {
49
+ this.$deviceLogProvider.logData(line, this.$devicePlatformsConstants.Android, deviceIdentifier);
50
+ }
97
51
  });
98
- logcatDumpStream.on("close", (code) => {
99
- logcatDumpStream.removeAllListeners();
100
- lineStream.removeAllListeners();
52
+ const appStartTrackingStream = await this.getAppStartTrackingLogcatStream(deviceIdentifier, options.appId);
53
+ this.mapDevicesLoggingData[deviceIdentifier].appStartTrackingProcess =
54
+ appStartTrackingStream;
55
+ const rawLineStream = byline(appStartTrackingStream.stdout);
56
+ this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
57
+ rawLineStream;
58
+ rawLineStream.on("data", (lineBuffer) => {
59
+ var _a, _b, _c, _d;
60
+ if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
61
+ return;
62
+ const lines = (lineBuffer.toString() || "").split("\n");
63
+ for (let line of lines) {
64
+ // 2024-06-26 16:43:22.286 630-659 ActivityManager system_server I Start proc 8854:org.nativescript.uitestsapp/u0a190 for next-top-activity {org.nativescript.uitestsapp/com.tns.NativeScriptActivity}
65
+ const startProc = /Start proc (?<pid>[0-9]+):(?<appId>.+?)\//.exec(line);
66
+ if (startProc &&
67
+ ((_b = startProc.groups) === null || _b === void 0 ? void 0 : _b.appId) === options.appId &&
68
+ ((_c = startProc.groups) === null || _c === void 0 ? void 0 : _c.pid) !== options.pid) {
69
+ this.forceStop(deviceIdentifier);
70
+ (_d = options.onAppRestarted) === null || _d === void 0 ? void 0 : _d.call(options);
71
+ }
72
+ }
101
73
  });
74
+ }
75
+ }
76
+ async dump(deviceIdentifier) {
77
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
78
+ const logcatDumpStream = await adb.executeCommand(["logcat", "-d"], {
79
+ returnChildProcess: true,
80
+ });
81
+ const lineStream = byline(logcatDumpStream.stdout);
82
+ lineStream.on("data", (line) => {
83
+ const lineText = line.toString();
84
+ this.$logger.trace(lineText);
85
+ });
86
+ logcatDumpStream.on("close", (code) => {
87
+ logcatDumpStream.removeAllListeners();
88
+ lineStream.removeAllListeners();
102
89
  });
103
90
  }
104
91
  /**
@@ -123,63 +110,57 @@ class LogcatHelper {
123
110
  /**
124
111
  * @deprecated - we likely don't need this anymore, and can simplify the code...
125
112
  */
126
- isLogcatPidSupported(deviceIdentifier) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const device = yield this.$devicesService.getDevice(deviceIdentifier);
129
- const minAndroidWithLogcatPidSupport = "7.0.0";
130
- return (!!device.deviceInfo.version &&
131
- semver.gte(semver.coerce(device.deviceInfo.version), minAndroidWithLogcatPidSupport));
132
- });
113
+ async isLogcatPidSupported(deviceIdentifier) {
114
+ const device = await this.$devicesService.getDevice(deviceIdentifier);
115
+ const minAndroidWithLogcatPidSupport = "7.0.0";
116
+ return (!!device.deviceInfo.version &&
117
+ semver.gte(semver.coerce(device.deviceInfo.version), minAndroidWithLogcatPidSupport));
133
118
  }
134
- getLogcatStream(deviceIdentifier, pid) {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- const isLogcatPidSupported = yield this.isLogcatPidSupported(deviceIdentifier);
137
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
138
- // -T 1 - shows only new logs after starting adb logcat
139
- const logcatCommand = ["logcat", "-T", "1"];
140
- const acceptedTags = [
141
- "chromium",
142
- '"Web Console"',
143
- "JS",
144
- "System.err",
145
- "TNS.Native",
146
- "TNS.Java",
147
- ];
148
- if (pid && isLogcatPidSupported) {
149
- logcatCommand.push(`--pid=${pid}`);
150
- acceptedTags.forEach((tag) => {
151
- // -s <tag> - shows only logs with the specified tag
152
- logcatCommand.push("-s", tag);
153
- });
154
- }
155
- const logcatStream = yield adb.executeCommand(logcatCommand, {
156
- returnChildProcess: true,
119
+ async getLogcatStream(deviceIdentifier, pid) {
120
+ const isLogcatPidSupported = await this.isLogcatPidSupported(deviceIdentifier);
121
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
122
+ // -T 1 - shows only new logs after starting adb logcat
123
+ const logcatCommand = ["logcat", "-T", "1"];
124
+ const acceptedTags = [
125
+ "chromium",
126
+ '"Web Console"',
127
+ "JS",
128
+ "System.err",
129
+ "TNS.Native",
130
+ "TNS.Java",
131
+ ];
132
+ if (pid && isLogcatPidSupported) {
133
+ logcatCommand.push(`--pid=${pid}`);
134
+ acceptedTags.forEach((tag) => {
135
+ // -s <tag> - shows only logs with the specified tag
136
+ logcatCommand.push("-s", tag);
157
137
  });
158
- return logcatStream;
138
+ }
139
+ const logcatStream = await adb.executeCommand(logcatCommand, {
140
+ returnChildProcess: true,
159
141
  });
142
+ return logcatStream;
160
143
  }
161
- getAppStartTrackingLogcatStream(deviceIdentifier, appId) {
162
- return __awaiter(this, void 0, void 0, function* () {
163
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
164
- // -b system - shows the system buffer/logs only
165
- // -T 1 - shows only new logs after starting adb logcat
166
- const logcatCommand = [
167
- `logcat`,
168
- `-b`,
169
- `system`,
170
- `-T`,
171
- `1`,
172
- "-s",
173
- "ActivityManager",
174
- ];
175
- if (appId) {
176
- logcatCommand.push(`--regex=Start.*${appId}`);
177
- }
178
- const appStartTrackingStream = yield adb.executeCommand(logcatCommand, {
179
- returnChildProcess: true,
180
- });
181
- return appStartTrackingStream;
144
+ async getAppStartTrackingLogcatStream(deviceIdentifier, appId) {
145
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
146
+ // -b system - shows the system buffer/logs only
147
+ // -T 1 - shows only new logs after starting adb logcat
148
+ const logcatCommand = [
149
+ `logcat`,
150
+ `-b`,
151
+ `system`,
152
+ `-T`,
153
+ `1`,
154
+ "-s",
155
+ "ActivityManager",
156
+ ];
157
+ if (appId) {
158
+ logcatCommand.push(`--regex=Start.*${appId}`);
159
+ }
160
+ const appStartTrackingStream = await adb.executeCommand(logcatCommand, {
161
+ returnChildProcess: true,
182
162
  });
163
+ return appStartTrackingStream;
183
164
  }
184
165
  }
185
166
  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,120 +12,106 @@ 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
- // As this method is called on 500ms, but it's execution may last much longer
58
- // use locking, so the next executions will not get into the body, while the first one is still working.
59
- // In case we do not break the next executions, we'll report each app as newly installed several times.
60
- try {
61
- const currentlyInstalledAppIdentifiers = yield this.getInstalledApplications();
62
- const previouslyInstalledAppIdentifiers = this.lastInstalledAppIdentifiers || [];
63
- const newAppIdentifiers = _.difference(currentlyInstalledAppIdentifiers, previouslyInstalledAppIdentifiers);
64
- const removedAppIdentifiers = _.difference(previouslyInstalledAppIdentifiers, currentlyInstalledAppIdentifiers);
65
- this.lastInstalledAppIdentifiers = currentlyInstalledAppIdentifiers;
66
- _.each(newAppIdentifiers, (appIdentifier) => this.emit("applicationInstalled", appIdentifier));
67
- _.each(removedAppIdentifiers, (appIdentifier) => this.emit("applicationUninstalled", appIdentifier));
68
- yield this.checkForAvailableDebuggableAppsChanges();
69
- }
70
- catch (err) {
71
- isFulfilled = true;
72
- reject(err);
73
- }
74
- finally {
75
- this.checkForApplicationUpdatesPromise = null;
76
- if (!isFulfilled) {
77
- resolve();
78
- }
35
+ async checkForApplicationUpdates() {
36
+ if (!this.checkForApplicationUpdatesPromise) {
37
+ this.checkForApplicationUpdatesPromise = new Promise(async (resolve, reject) => {
38
+ let isFulfilled = false;
39
+ // As this method is called on 500ms, but it's execution may last much longer
40
+ // use locking, so the next executions will not get into the body, while the first one is still working.
41
+ // In case we do not break the next executions, we'll report each app as newly installed several times.
42
+ try {
43
+ const currentlyInstalledAppIdentifiers = await this.getInstalledApplications();
44
+ const previouslyInstalledAppIdentifiers = this.lastInstalledAppIdentifiers || [];
45
+ const newAppIdentifiers = _.difference(currentlyInstalledAppIdentifiers, previouslyInstalledAppIdentifiers);
46
+ const removedAppIdentifiers = _.difference(previouslyInstalledAppIdentifiers, currentlyInstalledAppIdentifiers);
47
+ this.lastInstalledAppIdentifiers = currentlyInstalledAppIdentifiers;
48
+ _.each(newAppIdentifiers, (appIdentifier) => this.emit("applicationInstalled", appIdentifier));
49
+ _.each(removedAppIdentifiers, (appIdentifier) => this.emit("applicationUninstalled", appIdentifier));
50
+ await this.checkForAvailableDebuggableAppsChanges();
51
+ }
52
+ catch (err) {
53
+ isFulfilled = true;
54
+ reject(err);
55
+ }
56
+ finally {
57
+ this.checkForApplicationUpdatesPromise = null;
58
+ if (!isFulfilled) {
59
+ resolve();
79
60
  }
80
- }));
81
- }
82
- return this.checkForApplicationUpdatesPromise;
83
- });
61
+ }
62
+ });
63
+ }
64
+ return this.checkForApplicationUpdatesPromise;
84
65
  }
85
- tryStartApplication(appData) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- try {
88
- yield this.startApplication(appData);
89
- }
90
- catch (err) {
91
- this.$logger.trace(`Unable to start application ${appData.appId} with name ${appData.projectName}. Error is: ${err.message}`);
66
+ async tryStartApplication(appData) {
67
+ try {
68
+ await this.startApplication(appData);
69
+ }
70
+ catch (err) {
71
+ this.$logger.trace(`Unable to start application ${appData.appId} with name ${appData.projectName}. Error is: ${err.message}`);
72
+ }
73
+ }
74
+ async checkForAvailableDebuggableAppsChanges() {
75
+ const currentlyAvailableDebuggableApps = await this.getDebuggableApps();
76
+ const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
77
+ const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
78
+ const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
79
+ this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
80
+ _.each(newAvailableDebuggableApps, (appInfo) => {
81
+ this.emit("debuggableAppFound", appInfo);
82
+ });
83
+ _.each(notAvailableAppsForDebugging, (appInfo) => {
84
+ this.emit("debuggableAppLost", appInfo);
85
+ if (_.has(this.lastAvailableDebuggableAppViews, appInfo.appIdentifier)) {
86
+ // Prevent emitting debuggableViewLost when application cannot be debugged anymore.
87
+ delete this.lastAvailableDebuggableAppViews[appInfo.appIdentifier];
92
88
  }
93
89
  });
94
- }
95
- checkForAvailableDebuggableAppsChanges() {
96
- return __awaiter(this, void 0, void 0, function* () {
97
- const currentlyAvailableDebuggableApps = yield this.getDebuggableApps();
98
- const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
99
- const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
100
- const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
101
- this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
102
- _.each(newAvailableDebuggableApps, (appInfo) => {
103
- this.emit("debuggableAppFound", appInfo);
90
+ const cordovaDebuggableAppIdentifiers = _(currentlyAvailableDebuggableApps)
91
+ .filter((c) => c.framework === constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova)
92
+ .map((c) => c.appIdentifier)
93
+ .value();
94
+ const currentlyAvailableAppViews = await this.getDebuggableAppViews(cordovaDebuggableAppIdentifiers);
95
+ _.each(currentlyAvailableAppViews, (currentlyAvailableViews, appIdentifier) => {
96
+ const previouslyAvailableViews = this.lastAvailableDebuggableAppViews[appIdentifier];
97
+ const newAvailableViews = _.differenceBy(currentlyAvailableViews, previouslyAvailableViews, "id");
98
+ const notAvailableViews = _.differenceBy(previouslyAvailableViews, currentlyAvailableViews, "id");
99
+ _.each(notAvailableViews, (debugWebViewInfo) => {
100
+ this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
104
101
  });
105
- _.each(notAvailableAppsForDebugging, (appInfo) => {
106
- this.emit("debuggableAppLost", appInfo);
107
- if (_.has(this.lastAvailableDebuggableAppViews, appInfo.appIdentifier)) {
108
- // Prevent emitting debuggableViewLost when application cannot be debugged anymore.
109
- delete this.lastAvailableDebuggableAppViews[appInfo.appIdentifier];
110
- }
102
+ _.each(newAvailableViews, (debugWebViewInfo) => {
103
+ this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
111
104
  });
112
- const cordovaDebuggableAppIdentifiers = _(currentlyAvailableDebuggableApps)
113
- .filter((c) => c.framework === constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova)
114
- .map((c) => c.appIdentifier)
115
- .value();
116
- const currentlyAvailableAppViews = yield this.getDebuggableAppViews(cordovaDebuggableAppIdentifiers);
117
- _.each(currentlyAvailableAppViews, (currentlyAvailableViews, appIdentifier) => {
118
- const previouslyAvailableViews = this.lastAvailableDebuggableAppViews[appIdentifier];
119
- const newAvailableViews = _.differenceBy(currentlyAvailableViews, previouslyAvailableViews, "id");
120
- const notAvailableViews = _.differenceBy(previouslyAvailableViews, currentlyAvailableViews, "id");
121
- _.each(notAvailableViews, (debugWebViewInfo) => {
122
- this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
123
- });
124
- _.each(newAvailableViews, (debugWebViewInfo) => {
125
- this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
126
- });
127
- // Determine which of the views had changed since last check and raise debuggableViewChanged event for them:
128
- const keptViews = _.differenceBy(currentlyAvailableViews, newAvailableViews, "id");
129
- _.each(keptViews, (view) => {
130
- const previousTimeViewInfo = _.find(previouslyAvailableViews, (previousView) => previousView.id === view.id);
131
- if (!_.isEqual(view, previousTimeViewInfo)) {
132
- this.emit("debuggableViewChanged", appIdentifier, view);
133
- }
134
- });
135
- this.lastAvailableDebuggableAppViews[appIdentifier] =
136
- currentlyAvailableViews;
105
+ // Determine which of the views had changed since last check and raise debuggableViewChanged event for them:
106
+ const keptViews = _.differenceBy(currentlyAvailableViews, newAvailableViews, "id");
107
+ _.each(keptViews, (view) => {
108
+ const previousTimeViewInfo = _.find(previouslyAvailableViews, (previousView) => previousView.id === view.id);
109
+ if (!_.isEqual(view, previousTimeViewInfo)) {
110
+ this.emit("debuggableViewChanged", appIdentifier, view);
111
+ }
137
112
  });
113
+ this.lastAvailableDebuggableAppViews[appIdentifier] =
114
+ currentlyAvailableViews;
138
115
  });
139
116
  }
140
117
  }
@@ -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);