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.AndroidDeviceFileSystem = void 0;
13
4
  const path = require("path");
@@ -26,145 +17,121 @@ class AndroidDeviceFileSystem {
26
17
  this.$injector = $injector;
27
18
  this._deviceHashServices = Object.create(null);
28
19
  }
29
- listFiles(devicePath, appIdentifier) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- let listCommandArgs = ["ls", "-a", devicePath];
32
- if (appIdentifier) {
33
- listCommandArgs = ["run-as", appIdentifier].concat(listCommandArgs);
34
- }
35
- return this.adb.executeShellCommand(listCommandArgs);
36
- });
20
+ async listFiles(devicePath, appIdentifier) {
21
+ let listCommandArgs = ["ls", "-a", devicePath];
22
+ if (appIdentifier) {
23
+ listCommandArgs = ["run-as", appIdentifier].concat(listCommandArgs);
24
+ }
25
+ return this.adb.executeShellCommand(listCommandArgs);
37
26
  }
38
- getFile(deviceFilePath, appIdentifier, outputPath) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- const stdout = !outputPath;
41
- if (stdout) {
42
- outputPath = yield this.$tempService.path({
43
- prefix: "sync",
44
- suffix: ".tmp",
27
+ async getFile(deviceFilePath, appIdentifier, outputPath) {
28
+ const stdout = !outputPath;
29
+ if (stdout) {
30
+ outputPath = await this.$tempService.path({
31
+ prefix: "sync",
32
+ suffix: ".tmp",
33
+ });
34
+ }
35
+ await this.adb.executeCommand(["pull", deviceFilePath, outputPath]);
36
+ if (stdout) {
37
+ await new Promise((resolve, reject) => {
38
+ const readStream = this.$fs.createReadStream(outputPath);
39
+ readStream.pipe(process.stdout);
40
+ readStream.on("end", () => {
41
+ resolve();
45
42
  });
46
- }
47
- yield this.adb.executeCommand(["pull", deviceFilePath, outputPath]);
48
- if (stdout) {
49
- yield new Promise((resolve, reject) => {
50
- const readStream = this.$fs.createReadStream(outputPath);
51
- readStream.pipe(process.stdout);
52
- readStream.on("end", () => {
53
- resolve();
54
- });
55
- readStream.on("error", (err) => {
56
- reject(err);
57
- });
43
+ readStream.on("error", (err) => {
44
+ reject(err);
58
45
  });
59
- }
60
- });
46
+ });
47
+ }
61
48
  }
62
- getFileContent(deviceFilePath, appIdentifier) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const result = yield this.adb.executeShellCommand(["cat", deviceFilePath]);
65
- return result;
66
- });
49
+ async getFileContent(deviceFilePath, appIdentifier) {
50
+ const result = await this.adb.executeShellCommand(["cat", deviceFilePath]);
51
+ return result;
67
52
  }
68
- putFile(localFilePath, deviceFilePath, appIdentifier) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- yield this.adb.pushFile(localFilePath, deviceFilePath);
71
- });
53
+ async putFile(localFilePath, deviceFilePath, appIdentifier) {
54
+ await this.adb.pushFile(localFilePath, deviceFilePath);
72
55
  }
73
- transferFiles(deviceAppData, localToDevicePaths) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const directoriesToChmod = [];
76
- const transferredFiles = [];
77
- const action = (localToDevicePathData) => __awaiter(this, void 0, void 0, function* () {
78
- const fstat = this.$fs.getFsStats(localToDevicePathData.getLocalPath());
79
- if (fstat.isFile()) {
80
- const devicePath = localToDevicePathData.getDevicePath();
81
- yield this.adb.pushFile(localToDevicePathData.getLocalPath(), devicePath);
82
- transferredFiles.push(localToDevicePathData);
83
- }
84
- else if (fstat.isDirectory()) {
85
- const dirToChmod = localToDevicePathData.getDevicePath();
86
- directoriesToChmod.push(dirToChmod);
87
- }
88
- });
89
- yield (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, action);
90
- const dirsChmodAction = (directoryToChmod) => this.adb.executeShellCommand(["chmod", "0777", directoryToChmod]);
91
- yield (0, helpers_1.executeActionByChunks)(_.uniq(directoriesToChmod), constants_1.DEFAULT_CHUNK_SIZE, dirsChmodAction);
92
- return transferredFiles;
93
- });
94
- }
95
- transferDirectory(deviceAppData, localToDevicePaths, projectFilesPath) {
96
- return __awaiter(this, void 0, void 0, function* () {
97
- // starting from Android 9, adb push is throwing an exception when there are subfolders
98
- // the check could be removed when we start supporting only runtime versions with sockets
99
- const minAndroidWithoutAdbPushDir = "9.0.0";
100
- const isAdbPushDirSupported = semver.lt(semver.coerce(deviceAppData.device.deviceInfo.version), minAndroidWithoutAdbPushDir);
101
- const deviceProjectDir = yield deviceAppData.getDeviceProjectRootPath();
102
- let transferredLocalToDevicePaths = [];
103
- if (isAdbPushDirSupported) {
104
- yield this.adb.pushFile(projectFilesPath, deviceProjectDir);
105
- transferredLocalToDevicePaths = localToDevicePaths;
106
- }
107
- else {
108
- transferredLocalToDevicePaths = yield this.pushFiles(localToDevicePaths);
56
+ async transferFiles(deviceAppData, localToDevicePaths) {
57
+ const directoriesToChmod = [];
58
+ const transferredFiles = [];
59
+ const action = async (localToDevicePathData) => {
60
+ const fstat = this.$fs.getFsStats(localToDevicePathData.getLocalPath());
61
+ if (fstat.isFile()) {
62
+ const devicePath = localToDevicePathData.getDevicePath();
63
+ await this.adb.pushFile(localToDevicePathData.getLocalPath(), devicePath);
64
+ transferredFiles.push(localToDevicePathData);
109
65
  }
110
- if (transferredLocalToDevicePaths.length) {
111
- const filesToChmodOnDevice = transferredLocalToDevicePaths.map((localToDevicePath) => localToDevicePath.getDevicePath());
112
- yield this.chmodFiles(deviceProjectDir, filesToChmodOnDevice);
66
+ else if (fstat.isDirectory()) {
67
+ const dirToChmod = localToDevicePathData.getDevicePath();
68
+ directoriesToChmod.push(dirToChmod);
113
69
  }
114
- return transferredLocalToDevicePaths;
115
- });
70
+ };
71
+ await (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, action);
72
+ const dirsChmodAction = (directoryToChmod) => this.adb.executeShellCommand(["chmod", "0777", directoryToChmod]);
73
+ await (0, helpers_1.executeActionByChunks)(_.uniq(directoriesToChmod), constants_1.DEFAULT_CHUNK_SIZE, dirsChmodAction);
74
+ return transferredFiles;
116
75
  }
117
- chmodFiles(deviceProjectRoot, filesToChmodOnDevice) {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const commandsDeviceFilePath = this.$mobileHelper.buildDevicePath(deviceProjectRoot, "nativescript.commands.sh");
120
- yield this.createFileOnDevice(commandsDeviceFilePath, `chmod 0777 ${filesToChmodOnDevice.join(" ")}`);
121
- yield this.adb.executeShellCommand([commandsDeviceFilePath]);
122
- });
76
+ async transferDirectory(deviceAppData, localToDevicePaths, projectFilesPath) {
77
+ // starting from Android 9, adb push is throwing an exception when there are subfolders
78
+ // the check could be removed when we start supporting only runtime versions with sockets
79
+ const minAndroidWithoutAdbPushDir = "9.0.0";
80
+ const isAdbPushDirSupported = semver.lt(semver.coerce(deviceAppData.device.deviceInfo.version), minAndroidWithoutAdbPushDir);
81
+ const deviceProjectDir = await deviceAppData.getDeviceProjectRootPath();
82
+ let transferredLocalToDevicePaths = [];
83
+ if (isAdbPushDirSupported) {
84
+ await this.adb.pushFile(projectFilesPath, deviceProjectDir);
85
+ transferredLocalToDevicePaths = localToDevicePaths;
86
+ }
87
+ else {
88
+ transferredLocalToDevicePaths = await this.pushFiles(localToDevicePaths);
89
+ }
90
+ if (transferredLocalToDevicePaths.length) {
91
+ const filesToChmodOnDevice = transferredLocalToDevicePaths.map((localToDevicePath) => localToDevicePath.getDevicePath());
92
+ await this.chmodFiles(deviceProjectDir, filesToChmodOnDevice);
93
+ }
94
+ return transferredLocalToDevicePaths;
123
95
  }
124
- pushFiles(localToDevicePaths) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- this.$logger.trace("Changed hashes are:", localToDevicePaths);
127
- const transferredFiles = [];
128
- const transferFileAction = (localToDevicePathData) => __awaiter(this, void 0, void 0, function* () {
129
- transferredFiles.push(localToDevicePathData);
130
- yield this.transferFile(localToDevicePathData.getLocalPath(), localToDevicePathData.getDevicePath());
131
- });
132
- yield (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, transferFileAction);
133
- return transferredFiles;
134
- });
96
+ async chmodFiles(deviceProjectRoot, filesToChmodOnDevice) {
97
+ const commandsDeviceFilePath = this.$mobileHelper.buildDevicePath(deviceProjectRoot, "nativescript.commands.sh");
98
+ await this.createFileOnDevice(commandsDeviceFilePath, `chmod 0777 ${filesToChmodOnDevice.join(" ")}`);
99
+ await this.adb.executeShellCommand([commandsDeviceFilePath]);
135
100
  }
136
- transferFile(localPath, devicePath) {
137
- return __awaiter(this, void 0, void 0, function* () {
138
- this.$logger.trace(`Transfering ${localPath} to ${devicePath}`);
139
- const stats = this.$fs.getFsStats(localPath);
140
- if (stats.isDirectory()) {
141
- yield this.adb.executeShellCommand(["mkdir", path.dirname(devicePath)]);
142
- }
143
- else {
144
- yield this.adb.pushFile(localPath, devicePath);
145
- }
146
- });
101
+ async pushFiles(localToDevicePaths) {
102
+ this.$logger.trace("Changed hashes are:", localToDevicePaths);
103
+ const transferredFiles = [];
104
+ const transferFileAction = async (localToDevicePathData) => {
105
+ transferredFiles.push(localToDevicePathData);
106
+ await this.transferFile(localToDevicePathData.getLocalPath(), localToDevicePathData.getDevicePath());
107
+ };
108
+ await (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, transferFileAction);
109
+ return transferredFiles;
110
+ }
111
+ async transferFile(localPath, devicePath) {
112
+ this.$logger.trace(`Transfering ${localPath} to ${devicePath}`);
113
+ const stats = this.$fs.getFsStats(localPath);
114
+ if (stats.isDirectory()) {
115
+ await this.adb.executeShellCommand(["mkdir", path.dirname(devicePath)]);
116
+ }
117
+ else {
118
+ await this.adb.pushFile(localPath, devicePath);
119
+ }
147
120
  }
148
- createFileOnDevice(deviceFilePath, fileContent) {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- const hostTmpDir = yield this.$tempService.mkdirSync("application-");
151
- const commandsFileHostPath = path.join(hostTmpDir, "temp.commands.file");
152
- this.$fs.writeFile(commandsFileHostPath, fileContent);
153
- // copy it to the device
154
- yield this.transferFile(commandsFileHostPath, deviceFilePath);
155
- yield this.adb.executeShellCommand(["chmod", "0777", deviceFilePath]);
156
- });
121
+ async createFileOnDevice(deviceFilePath, fileContent) {
122
+ const hostTmpDir = await this.$tempService.mkdirSync("application-");
123
+ const commandsFileHostPath = path.join(hostTmpDir, "temp.commands.file");
124
+ this.$fs.writeFile(commandsFileHostPath, fileContent);
125
+ // copy it to the device
126
+ await this.transferFile(commandsFileHostPath, deviceFilePath);
127
+ await this.adb.executeShellCommand(["chmod", "0777", deviceFilePath]);
157
128
  }
158
- deleteFile(deviceFilePath, appIdentifier) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- yield this.adb.executeShellCommand(["rm", "-rf", deviceFilePath]);
161
- });
129
+ async deleteFile(deviceFilePath, appIdentifier) {
130
+ await this.adb.executeShellCommand(["rm", "-rf", deviceFilePath]);
162
131
  }
163
- updateHashesOnDevice(hashes, appIdentifier) {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- const deviceHashService = this.getDeviceHashService(appIdentifier);
166
- yield deviceHashService.uploadHashFileToDevice(hashes);
167
- });
132
+ async updateHashesOnDevice(hashes, appIdentifier) {
133
+ const deviceHashService = this.getDeviceHashService(appIdentifier);
134
+ await deviceHashService.uploadHashFileToDevice(hashes);
168
135
  }
169
136
  getDeviceHashService(appIdentifier) {
170
137
  if (!this._deviceHashServices[appIdentifier]) {
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AndroidDeviceHashService = void 0;
19
10
  const path = require("path");
@@ -32,51 +23,41 @@ class AndroidDeviceHashService {
32
23
  get hashFileDevicePath() {
33
24
  return this.$mobileHelper.buildDevicePath(constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME, this.appIdentifier, AndroidDeviceHashService.HASH_FILE_NAME);
34
25
  }
35
- doesShasumFileExistsOnDevice() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const lsResult = yield this.adb.executeShellCommand([
38
- "ls",
39
- this.hashFileDevicePath,
40
- ]);
41
- return !!(lsResult && lsResult.trim() === this.hashFileDevicePath);
42
- });
26
+ async doesShasumFileExistsOnDevice() {
27
+ const lsResult = await this.adb.executeShellCommand([
28
+ "ls",
29
+ this.hashFileDevicePath,
30
+ ]);
31
+ return !!(lsResult && lsResult.trim() === this.hashFileDevicePath);
43
32
  }
44
- getShasumsFromDevice() {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- const hashFileLocalPath = yield this.downloadHashFileFromDevice();
47
- if (this.$fs.exists(hashFileLocalPath)) {
48
- return this.$fs.readJson(hashFileLocalPath);
49
- }
50
- return null;
51
- });
33
+ async getShasumsFromDevice() {
34
+ const hashFileLocalPath = await this.downloadHashFileFromDevice();
35
+ if (this.$fs.exists(hashFileLocalPath)) {
36
+ return this.$fs.readJson(hashFileLocalPath);
37
+ }
38
+ return null;
52
39
  }
53
- uploadHashFileToDevice(data) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- const hashFileLocalPath = yield this.getHashFileLocalPath();
56
- this.$fs.writeJson(hashFileLocalPath, data);
57
- yield this.adb.pushFile(hashFileLocalPath, this.hashFileDevicePath);
58
- });
40
+ async uploadHashFileToDevice(data) {
41
+ const hashFileLocalPath = await this.getHashFileLocalPath();
42
+ this.$fs.writeJson(hashFileLocalPath, data);
43
+ await this.adb.pushFile(hashFileLocalPath, this.hashFileDevicePath);
59
44
  }
60
- updateHashes(localToDevicePaths) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- const oldShasums = (yield this.getShasumsFromDevice()) || {};
63
- yield this.generateHashesFromLocalToDevicePaths(localToDevicePaths, oldShasums);
64
- yield this.uploadHashFileToDevice(oldShasums);
65
- });
45
+ async updateHashes(localToDevicePaths) {
46
+ const oldShasums = (await this.getShasumsFromDevice()) || {};
47
+ await this.generateHashesFromLocalToDevicePaths(localToDevicePaths, oldShasums);
48
+ await this.uploadHashFileToDevice(oldShasums);
66
49
  }
67
- generateHashesFromLocalToDevicePaths(localToDevicePaths, initialShasums = {}) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const action = (localToDevicePathData) => __awaiter(this, void 0, void 0, function* () {
70
- const localPath = localToDevicePathData.getLocalPath();
71
- if (this.$fs.getFsStats(localPath).isFile()) {
72
- // TODO: Use relative to project path for key
73
- // This will speed up livesync on the same device for the same project on different PCs.
74
- initialShasums[localPath] = yield this.$fs.getFileShasum(localPath);
75
- }
76
- });
77
- yield (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, action);
78
- return initialShasums;
79
- });
50
+ async generateHashesFromLocalToDevicePaths(localToDevicePaths, initialShasums = {}) {
51
+ const action = async (localToDevicePathData) => {
52
+ const localPath = localToDevicePathData.getLocalPath();
53
+ if (this.$fs.getFsStats(localPath).isFile()) {
54
+ // TODO: Use relative to project path for key
55
+ // This will speed up livesync on the same device for the same project on different PCs.
56
+ initialShasums[localPath] = await this.$fs.getFileShasum(localPath);
57
+ }
58
+ };
59
+ await (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, action);
60
+ return initialShasums;
80
61
  }
81
62
  getDevicePaths(localToDevicePaths) {
82
63
  return _.map(localToDevicePaths, (localToDevicePathData) => {
@@ -89,39 +70,34 @@ class AndroidDeviceHashService {
89
70
  }
90
71
  return _.omitBy(currentShasums, (hash, pathToFile) => !!oldShasums[pathToFile] && oldShasums[pathToFile] === hash);
91
72
  }
92
- removeHashes(localToDevicePaths) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const oldShasums = yield this.getShasumsFromDevice();
95
- if (oldShasums) {
96
- const fileToShasumDictionary = _.omit(oldShasums, localToDevicePaths.map((ldp) => ldp.getLocalPath()));
97
- yield this.uploadHashFileToDevice(fileToShasumDictionary);
98
- return true;
99
- }
100
- return false;
101
- });
73
+ async removeHashes(localToDevicePaths) {
74
+ const oldShasums = await this.getShasumsFromDevice();
75
+ if (oldShasums) {
76
+ const fileToShasumDictionary = _.omit(oldShasums, localToDevicePaths.map((ldp) => ldp.getLocalPath()));
77
+ await this.uploadHashFileToDevice(fileToShasumDictionary);
78
+ return true;
79
+ }
80
+ return false;
102
81
  }
103
- getHashFileLocalPath() {
104
- return __awaiter(this, void 0, void 0, function* () {
105
- return path.join(yield this.getTempDir(), AndroidDeviceHashService.HASH_FILE_NAME);
106
- });
82
+ async getHashFileLocalPath() {
83
+ return path.join(await this.getTempDir(), AndroidDeviceHashService.HASH_FILE_NAME);
107
84
  }
108
85
  getTempDir() {
109
86
  return this.$tempService.mkdirSync(`android-device-hash-service-${this.appIdentifier}`);
110
87
  }
111
- downloadHashFileFromDevice() {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- const hashFileLocalPath = yield this.getHashFileLocalPath();
114
- if (!this.$fs.exists(hashFileLocalPath)) {
115
- yield this.adb.executeCommand([
116
- "pull",
117
- this.hashFileDevicePath,
118
- yield this.getTempDir(),
119
- ]);
120
- }
121
- return hashFileLocalPath;
122
- });
88
+ async downloadHashFileFromDevice() {
89
+ const hashFileLocalPath = await this.getHashFileLocalPath();
90
+ if (!this.$fs.exists(hashFileLocalPath)) {
91
+ await this.adb.executeCommand([
92
+ "pull",
93
+ this.hashFileDevicePath,
94
+ await this.getTempDir(),
95
+ ]);
96
+ }
97
+ return hashFileLocalPath;
123
98
  }
124
99
  }
100
+ exports.AndroidDeviceHashService = AndroidDeviceHashService;
125
101
  AndroidDeviceHashService.HASH_FILE_NAME = "hashes";
126
102
  __decorate([
127
103
  (0, decorators_1.cache)()
@@ -132,5 +108,4 @@ __decorate([
132
108
  __decorate([
133
109
  (0, decorators_1.cache)()
134
110
  ], AndroidDeviceHashService.prototype, "getTempDir", null);
135
- exports.AndroidDeviceHashService = AndroidDeviceHashService;
136
111
  //# sourceMappingURL=android-device-hash-service.js.map
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AndroidDevice = void 0;
19
10
  const device_android_debug_bridge_1 = require("./device-android-debug-bridge");
@@ -33,48 +24,46 @@ class AndroidDevice {
33
24
  this.$logcatHelper = $logcatHelper;
34
25
  this.$injector = $injector;
35
26
  }
36
- init() {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- this.adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
39
- identifier: this.identifier,
40
- });
41
- this.applicationManager = this.$injector.resolve(applicationManagerPath.AndroidApplicationManager, { adb: this.adb, identifier: this.identifier });
42
- this.fileSystem = this.$injector.resolve(fileSystemPath.AndroidDeviceFileSystem, { adb: this.adb });
43
- let details = yield this.getDeviceDetails(["getprop"]);
44
- if (!details || !details.name) {
45
- // In older CLI versions we are calling cat /system/build.prop to get details.
46
- // Keep this logic for compatibility and possibly for devices for which getprop is not working
47
- details = yield this.getDeviceDetails(["cat", "/system/build.prop"]);
48
- }
49
- this.$logger.trace(details);
50
- const adbStatusInfo = AndroidDevice.ADB_DEVICE_STATUS_INFO[this.status];
51
- const type = yield this.getType();
52
- let version = details.release;
53
- if (version && version.toLowerCase() === "q") {
54
- version = "10.0.0";
55
- }
56
- this.deviceInfo = {
57
- identifier: this.identifier,
58
- displayName: details.name,
59
- model: details.model,
60
- version,
61
- vendor: details.brand,
62
- platform: this.$devicePlatformsConstants.Android,
63
- status: adbStatusInfo ? adbStatusInfo.deviceStatus : this.status,
64
- errorHelp: adbStatusInfo ? adbStatusInfo.errorHelp : "Unknown status",
65
- isTablet: this.getIsTablet(details),
66
- type,
67
- connectionTypes: [constants_1.DeviceConnectionType.Local],
68
- };
69
- this.deviceInfo.connectionTypes = this.isEmulator
70
- ? [constants_1.DeviceConnectionType.Local]
71
- : [constants_1.DeviceConnectionType.USB];
72
- if (this.isEmulator) {
73
- this.deviceInfo.displayName = yield this.$androidEmulatorServices.getRunningEmulatorName(this.identifier);
74
- this.deviceInfo.imageIdentifier = yield this.$androidEmulatorServices.getRunningEmulatorImageIdentifier(this.identifier);
75
- }
76
- this.$logger.trace(this.deviceInfo);
27
+ async init() {
28
+ this.adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
29
+ identifier: this.identifier,
77
30
  });
31
+ this.applicationManager = this.$injector.resolve(applicationManagerPath.AndroidApplicationManager, { adb: this.adb, identifier: this.identifier });
32
+ this.fileSystem = this.$injector.resolve(fileSystemPath.AndroidDeviceFileSystem, { adb: this.adb });
33
+ let details = await this.getDeviceDetails(["getprop"]);
34
+ if (!details || !details.name) {
35
+ // In older CLI versions we are calling cat /system/build.prop to get details.
36
+ // Keep this logic for compatibility and possibly for devices for which getprop is not working
37
+ details = await this.getDeviceDetails(["cat", "/system/build.prop"]);
38
+ }
39
+ this.$logger.trace(details);
40
+ const adbStatusInfo = AndroidDevice.ADB_DEVICE_STATUS_INFO[this.status];
41
+ const type = await this.getType();
42
+ let version = details.release;
43
+ if (version && version.toLowerCase() === "q") {
44
+ version = "10.0.0";
45
+ }
46
+ this.deviceInfo = {
47
+ identifier: this.identifier,
48
+ displayName: details.name,
49
+ model: details.model,
50
+ version,
51
+ vendor: details.brand,
52
+ platform: this.$devicePlatformsConstants.Android,
53
+ status: adbStatusInfo ? adbStatusInfo.deviceStatus : this.status,
54
+ errorHelp: adbStatusInfo ? adbStatusInfo.errorHelp : "Unknown status",
55
+ isTablet: this.getIsTablet(details),
56
+ type,
57
+ connectionTypes: [constants_1.DeviceConnectionType.Local],
58
+ };
59
+ this.deviceInfo.connectionTypes = this.isEmulator
60
+ ? [constants_1.DeviceConnectionType.Local]
61
+ : [constants_1.DeviceConnectionType.USB];
62
+ if (this.isEmulator) {
63
+ this.deviceInfo.displayName = await this.$androidEmulatorServices.getRunningEmulatorName(this.identifier);
64
+ this.deviceInfo.imageIdentifier = await this.$androidEmulatorServices.getRunningEmulatorImageIdentifier(this.identifier);
65
+ }
66
+ this.$logger.trace(this.deviceInfo);
78
67
  }
79
68
  get isEmulator() {
80
69
  return this.deviceInfo.type === constants.DeviceTypes.Emulator;
@@ -82,43 +71,39 @@ class AndroidDevice {
82
71
  get isOnlyWiFiConnected() {
83
72
  return false;
84
73
  }
85
- openDeviceLogStream() {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- if (this.deviceInfo.status === constants.CONNECTED_STATUS) {
88
- yield this.$logcatHelper.start({
89
- deviceIdentifier: this.identifier,
90
- keepSingleProcess: true,
91
- });
92
- }
93
- });
74
+ async openDeviceLogStream() {
75
+ if (this.deviceInfo.status === constants.CONNECTED_STATUS) {
76
+ await this.$logcatHelper.start({
77
+ deviceIdentifier: this.identifier,
78
+ keepSingleProcess: true,
79
+ });
80
+ }
94
81
  }
95
82
  detach() {
96
83
  if (this.isEmulator) {
97
84
  this.$androidEmulatorServices.detach(this.deviceInfo);
98
85
  }
99
86
  }
100
- getDeviceDetails(shellCommandArgs) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const parsedDetails = {};
103
- this.$logger.trace(`Trying to get information for Android device. Command is: ${shellCommandArgs}`);
104
- try {
105
- const details = yield this.adb.executeShellCommand(shellCommandArgs);
106
- details.split(/\r?\n|\r/).forEach((value) => {
107
- // sample line is "ro.build.version.release=4.4" in /system/build.prop
108
- // sample line from getprop is: [ro.build.version.release]: [6.0]
109
- // NOTE: some props do not have value: [ro.build.version.base_os]: []
110
- const match = /(?:\[?ro\.build\.version|ro\.product|ro\.build)\.(.+?)]?(?:\:|=)(?:\s*?\[)?(.*?)]?$/.exec(value);
111
- if (match) {
112
- parsedDetails[match[1]] = match[2];
113
- }
114
- });
115
- }
116
- catch (err) {
117
- this.$logger.trace(`Error while getting details from Android device. Command is: ${shellCommandArgs}. Error is: ${err}`);
118
- }
119
- this.$logger.trace(parsedDetails);
120
- return parsedDetails;
121
- });
87
+ async getDeviceDetails(shellCommandArgs) {
88
+ const parsedDetails = {};
89
+ this.$logger.trace(`Trying to get information for Android device. Command is: ${shellCommandArgs}`);
90
+ try {
91
+ const details = await this.adb.executeShellCommand(shellCommandArgs);
92
+ details.split(/\r?\n|\r/).forEach((value) => {
93
+ // sample line is "ro.build.version.release=4.4" in /system/build.prop
94
+ // sample line from getprop is: [ro.build.version.release]: [6.0]
95
+ // NOTE: some props do not have value: [ro.build.version.base_os]: []
96
+ const match = /(?:\[?ro\.build\.version|ro\.product|ro\.build)\.(.+?)]?(?:\:|=)(?:\s*?\[)?(.*?)]?$/.exec(value);
97
+ if (match) {
98
+ parsedDetails[match[1]] = match[2];
99
+ }
100
+ });
101
+ }
102
+ catch (err) {
103
+ this.$logger.trace(`Error while getting details from Android device. Command is: ${shellCommandArgs}. Error is: ${err}`);
104
+ }
105
+ this.$logger.trace(parsedDetails);
106
+ return parsedDetails;
122
107
  }
123
108
  getIsTablet(details) {
124
109
  //version 3.x.x (also known as Honeycomb) is a tablet only version
@@ -126,16 +111,15 @@ class AndroidDevice {
126
111
  (_.startsWith(details.release, "3.") ||
127
112
  _.includes((details.characteristics || "").toLowerCase(), "tablet")));
128
113
  }
129
- getType() {
130
- return __awaiter(this, void 0, void 0, function* () {
131
- const runningEmulatorIds = yield this.$androidEmulatorServices.getRunningEmulatorIds();
132
- if (_.find(runningEmulatorIds, (emulatorId) => emulatorId === this.identifier)) {
133
- return constants.DeviceTypes.Emulator;
134
- }
135
- return constants.DeviceTypes.Device;
136
- });
114
+ async getType() {
115
+ const runningEmulatorIds = await this.$androidEmulatorServices.getRunningEmulatorIds();
116
+ if (_.find(runningEmulatorIds, (emulatorId) => emulatorId === this.identifier)) {
117
+ return constants.DeviceTypes.Emulator;
118
+ }
119
+ return constants.DeviceTypes.Device;
137
120
  }
138
121
  }
122
+ exports.AndroidDevice = AndroidDevice;
139
123
  // http://stackoverflow.com/questions/31178195/what-does-adb-device-status-mean
140
124
  AndroidDevice.ADB_DEVICE_STATUS_INFO = {
141
125
  device: {
@@ -162,5 +146,4 @@ AndroidDevice.ADB_DEVICE_STATUS_INFO = {
162
146
  __decorate([
163
147
  (0, decorators_1.cache)()
164
148
  ], AndroidDevice.prototype, "init", null);
165
- exports.AndroidDevice = AndroidDevice;
166
149
  //# sourceMappingURL=android-device.js.map