nativescript 8.9.0-dev.0 → 8.9.0-dev.2

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 (405) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/.d.ts +1 -0
  3. package/lib/android-tools-info.js +32 -9
  4. package/lib/base-package-manager.js +71 -47
  5. package/lib/bootstrap.js +6 -1
  6. package/lib/bun-package-manager.js +104 -65
  7. package/lib/color.js +5 -2
  8. package/lib/commands/add-platform.js +31 -14
  9. package/lib/commands/apple-login.js +30 -18
  10. package/lib/commands/appstore-list.js +46 -34
  11. package/lib/commands/appstore-upload.js +68 -52
  12. package/lib/commands/build.js +90 -57
  13. package/lib/commands/clean.js +197 -161
  14. package/lib/commands/command-base.js +28 -14
  15. package/lib/commands/config.js +71 -48
  16. package/lib/commands/create-project.js +235 -210
  17. package/lib/commands/debug.js +93 -66
  18. package/lib/commands/deploy.js +47 -30
  19. package/lib/commands/embedding/embed.js +59 -33
  20. package/lib/commands/extensibility/install-extension.js +17 -5
  21. package/lib/commands/extensibility/list-extensions.js +25 -13
  22. package/lib/commands/extensibility/uninstall-extension.js +16 -4
  23. package/lib/commands/fonts.js +42 -30
  24. package/lib/commands/generate-assets.js +29 -13
  25. package/lib/commands/generate-help.js +14 -2
  26. package/lib/commands/generate.js +70 -12
  27. package/lib/commands/info.js +14 -2
  28. package/lib/commands/install.js +50 -34
  29. package/lib/commands/list-platforms.js +26 -14
  30. package/lib/commands/migrate.js +27 -15
  31. package/lib/commands/native-add.js +51 -23
  32. package/lib/commands/platform-clean.js +33 -19
  33. package/lib/commands/plugin/add-plugin.js +26 -12
  34. package/lib/commands/plugin/build-plugin.js +45 -31
  35. package/lib/commands/plugin/create-plugin.js +138 -110
  36. package/lib/commands/plugin/list-plugins.js +34 -22
  37. package/lib/commands/plugin/remove-plugin.js +35 -20
  38. package/lib/commands/plugin/update-plugin.js +34 -20
  39. package/lib/commands/post-install.js +39 -20
  40. package/lib/commands/prepare.js +39 -22
  41. package/lib/commands/preview.js +64 -49
  42. package/lib/commands/remove-platform.js +19 -7
  43. package/lib/commands/resources/resources-update.js +28 -13
  44. package/lib/commands/run.js +77 -55
  45. package/lib/commands/setup.js +1 -0
  46. package/lib/commands/start.js +20 -6
  47. package/lib/commands/test-init.js +138 -123
  48. package/lib/commands/test.js +97 -67
  49. package/lib/commands/typings.js +143 -126
  50. package/lib/commands/update-platform.js +40 -22
  51. package/lib/commands/update.js +45 -30
  52. package/lib/commands/widget.js +767 -0
  53. package/lib/common/bootstrap.js +1 -0
  54. package/lib/common/child-process.js +75 -53
  55. package/lib/common/codeGeneration/code-entity.js +2 -1
  56. package/lib/common/codeGeneration/code-printer.js +2 -1
  57. package/lib/common/command-params.js +19 -7
  58. package/lib/common/commands/analytics.js +43 -27
  59. package/lib/common/commands/autocompletion.js +59 -39
  60. package/lib/common/commands/device/device-log-stream.js +24 -12
  61. package/lib/common/commands/device/get-file.js +35 -22
  62. package/lib/common/commands/device/list-applications.js +24 -12
  63. package/lib/common/commands/device/list-devices.js +90 -72
  64. package/lib/common/commands/device/list-files.js +36 -23
  65. package/lib/common/commands/device/put-file.js +35 -22
  66. package/lib/common/commands/device/run-application.js +26 -12
  67. package/lib/common/commands/device/stop-application.js +23 -11
  68. package/lib/common/commands/device/uninstall-application.js +18 -6
  69. package/lib/common/commands/doctor.js +3 -2
  70. package/lib/common/commands/generate-messages.js +29 -17
  71. package/lib/common/commands/help.js +34 -20
  72. package/lib/common/commands/package-manager-get.js +18 -6
  73. package/lib/common/commands/package-manager-set.js +21 -9
  74. package/lib/common/commands/post-install.js +14 -2
  75. package/lib/common/commands/preuninstall.js +48 -24
  76. package/lib/common/commands/proxy/proxy-base.js +23 -8
  77. package/lib/common/commands/proxy/proxy-clear.js +16 -4
  78. package/lib/common/commands/proxy/proxy-get.js +15 -3
  79. package/lib/common/commands/proxy/proxy-set.js +101 -87
  80. package/lib/common/common-lib.js +1 -0
  81. package/lib/common/constants.js +22 -11
  82. package/lib/common/decorators.js +70 -10
  83. package/lib/common/dispatchers.js +106 -80
  84. package/lib/common/errors.js +116 -91
  85. package/lib/common/file-system.js +141 -108
  86. package/lib/common/header.js +5 -1
  87. package/lib/common/helpers.js +267 -152
  88. package/lib/common/host-info.js +54 -37
  89. package/lib/common/http-client.js +128 -93
  90. package/lib/common/logger/appenders/cli-appender.js +6 -1
  91. package/lib/common/logger/appenders/emit-appender.js +6 -1
  92. package/lib/common/logger/layouts/cli-layout.js +3 -1
  93. package/lib/common/logger/logger.js +9 -4
  94. package/lib/common/messages/messages.js +6 -0
  95. package/lib/common/mobile/android/android-application-manager.js +162 -122
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +2 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +118 -87
  98. package/lib/common/mobile/android/android-device-file-system.js +135 -98
  99. package/lib/common/mobile/android/android-device-hash-service.js +78 -50
  100. package/lib/common/mobile/android/android-device.js +93 -68
  101. package/lib/common/mobile/android/android-emulator-services.js +131 -105
  102. package/lib/common/mobile/android/android-ini-file-parser.js +9 -0
  103. package/lib/common/mobile/android/android-log-filter.js +5 -1
  104. package/lib/common/mobile/android/android-virtual-device-service.js +123 -76
  105. package/lib/common/mobile/android/device-android-debug-bridge.js +30 -13
  106. package/lib/common/mobile/android/genymotion/genymotion-service.js +123 -91
  107. package/lib/common/mobile/android/genymotion/virtualbox-service.js +92 -64
  108. package/lib/common/mobile/android/logcat-helper.js +140 -108
  109. package/lib/common/mobile/application-manager-base.js +113 -84
  110. package/lib/common/mobile/device-emitter.js +4 -0
  111. package/lib/common/mobile/device-log-emitter.js +1 -0
  112. package/lib/common/mobile/device-log-provider-base.js +19 -7
  113. package/lib/common/mobile/device-log-provider.js +23 -0
  114. package/lib/common/mobile/device-platforms-constants.js +1 -0
  115. package/lib/common/mobile/emulator-helper.js +3 -0
  116. package/lib/common/mobile/ios/device/ios-application-manager.js +111 -79
  117. package/lib/common/mobile/ios/device/ios-device-file-system.js +106 -78
  118. package/lib/common/mobile/ios/device/ios-device-operations.js +146 -105
  119. package/lib/common/mobile/ios/device/ios-device.js +40 -20
  120. package/lib/common/mobile/ios/ios-device-base.js +82 -58
  121. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +2 -0
  122. package/lib/common/mobile/ios/ios-log-filter.js +1 -0
  123. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +96 -63
  124. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +2 -1
  125. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +95 -60
  126. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +48 -27
  127. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +63 -37
  128. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +36 -24
  129. package/lib/common/mobile/local-to-device-path-data-factory.js +1 -0
  130. package/lib/common/mobile/log-filter.js +2 -0
  131. package/lib/common/mobile/logging-levels.js +1 -0
  132. package/lib/common/mobile/mobile-core/android-device-discovery.js +64 -43
  133. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +35 -21
  134. package/lib/common/mobile/mobile-core/android-process-service.js +214 -143
  135. package/lib/common/mobile/mobile-core/device-discovery.js +14 -2
  136. package/lib/common/mobile/mobile-core/devices-service.js +505 -386
  137. package/lib/common/mobile/mobile-core/ios-device-discovery.js +37 -24
  138. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +65 -47
  139. package/lib/common/mobile/mobile-helper.js +27 -15
  140. package/lib/common/mobile/wp8/wp8-emulator-services.js +53 -25
  141. package/lib/common/opener.js +3 -2
  142. package/lib/common/os-info.js +1 -0
  143. package/lib/common/plist-parser.js +1 -0
  144. package/lib/common/project-helper.js +1 -0
  145. package/lib/common/prompter.js +114 -91
  146. package/lib/common/queue.js +21 -9
  147. package/lib/common/resource-loader.js +1 -0
  148. package/lib/common/services/auto-completion-service.js +65 -40
  149. package/lib/common/services/cancellation.js +29 -17
  150. package/lib/common/services/commands-service.js +180 -146
  151. package/lib/common/services/help-service.js +166 -133
  152. package/lib/common/services/hooks-service.js +121 -93
  153. package/lib/common/services/ios-notification-service.js +35 -21
  154. package/lib/common/services/json-file-settings-service.js +77 -52
  155. package/lib/common/services/lock-service.js +58 -35
  156. package/lib/common/services/message-contract-generator.js +47 -35
  157. package/lib/common/services/messages-service.js +1 -0
  158. package/lib/common/services/micro-templating-service.js +21 -4
  159. package/lib/common/services/net-service.js +110 -90
  160. package/lib/common/services/project-files-manager.js +28 -10
  161. package/lib/common/services/project-files-provider-base.js +1 -0
  162. package/lib/common/services/proxy-service.js +25 -13
  163. package/lib/common/services/qr.js +25 -13
  164. package/lib/common/services/settings-service.js +2 -1
  165. package/lib/common/services/xcode-select-service.js +36 -20
  166. package/lib/common/utils.js +3 -2
  167. package/lib/common/validators/project-name-validator.js +2 -1
  168. package/lib/common/validators/validation-result.js +2 -1
  169. package/lib/common/verify-node-version.js +11 -3
  170. package/lib/common/yok.js +69 -35
  171. package/lib/config.js +72 -36
  172. package/lib/constants-provider.js +1 -0
  173. package/lib/constants.js +78 -25
  174. package/lib/controllers/build-controller.js +100 -82
  175. package/lib/controllers/debug-controller.js +133 -107
  176. package/lib/controllers/deploy-controller.js +24 -15
  177. package/lib/controllers/migrate-controller.js +884 -723
  178. package/lib/controllers/platform-controller.js +94 -71
  179. package/lib/controllers/prepare-controller.js +274 -232
  180. package/lib/controllers/run-controller.js +427 -397
  181. package/lib/controllers/update-controller-base.js +30 -16
  182. package/lib/controllers/update-controller.js +130 -94
  183. package/lib/data/build-data.js +1 -0
  184. package/lib/data/controller-data-base.js +1 -0
  185. package/lib/data/debug-data.js +1 -0
  186. package/lib/data/platform-data.js +1 -0
  187. package/lib/data/prepare-data.js +2 -4
  188. package/lib/data/run-data.js +1 -0
  189. package/lib/definitions/ios.d.ts +4 -2
  190. package/lib/definitions/project.d.ts +26 -0
  191. package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
  192. package/lib/detached-processes/cleanup-process.js +43 -30
  193. package/lib/detached-processes/file-log-service.js +2 -1
  194. package/lib/device-path-provider.js +35 -23
  195. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
  196. package/lib/device-sockets/ios/notification.js +4 -1
  197. package/lib/device-sockets/ios/socket-request-executor.js +42 -24
  198. package/lib/helpers/android-bundle-validator-helper.js +3 -2
  199. package/lib/helpers/deploy-command-helper.js +50 -44
  200. package/lib/helpers/key-command-helper.js +17 -6
  201. package/lib/helpers/livesync-command-helper.js +155 -137
  202. package/lib/helpers/network-connectivity-validator.js +18 -6
  203. package/lib/helpers/options-track-helper.js +19 -7
  204. package/lib/helpers/package-path-helper.js +1 -0
  205. package/lib/helpers/platform-command-helper.js +127 -101
  206. package/lib/helpers/version-validator-helper.js +1 -0
  207. package/lib/key-commands/bootstrap.js +3 -2
  208. package/lib/key-commands/index.js +205 -154
  209. package/lib/nativescript-cli-lib-bootstrap.js +4 -0
  210. package/lib/nativescript-cli-lib.js +1 -0
  211. package/lib/nativescript-cli.js +24 -6
  212. package/lib/node/pbxproj-dom-xcode.js +1 -0
  213. package/lib/node/xcode.js +1 -0
  214. package/lib/node-package-manager.js +114 -81
  215. package/lib/options.js +156 -122
  216. package/lib/package-installation-manager.js +172 -130
  217. package/lib/package-manager.js +88 -63
  218. package/lib/platform-command-param.js +16 -4
  219. package/lib/pnpm-package-manager.js +81 -59
  220. package/lib/project-data.js +13 -1
  221. package/lib/providers/project-files-provider.js +2 -1
  222. package/lib/resolvers/livesync-service-resolver.js +1 -0
  223. package/lib/services/analytics/analytics-broker-process.js +32 -19
  224. package/lib/services/analytics/analytics-broker.js +31 -17
  225. package/lib/services/analytics/analytics-service.js +210 -170
  226. package/lib/services/analytics/google-analytics-provider.js +59 -43
  227. package/lib/services/analytics-settings-service.js +37 -15
  228. package/lib/services/android/android-bundle-tool-service.js +61 -43
  229. package/lib/services/android/gradle-build-args-service.js +23 -9
  230. package/lib/services/android/gradle-build-service.js +36 -22
  231. package/lib/services/android/gradle-command-service.js +36 -22
  232. package/lib/services/android-device-debug-service.js +123 -90
  233. package/lib/services/android-plugin-build-service.js +260 -205
  234. package/lib/services/android-project-service.js +241 -129
  235. package/lib/services/android-resources-migration-service.js +71 -51
  236. package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
  237. package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
  238. package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
  239. package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
  240. package/lib/services/assets-generation/assets-generation-service.js +128 -103
  241. package/lib/services/build-artifacts-service.js +22 -10
  242. package/lib/services/build-data-service.js +1 -0
  243. package/lib/services/build-info-file-service.js +36 -20
  244. package/lib/services/cleanup-service.js +81 -48
  245. package/lib/services/cocoapods-platform-manager.js +9 -0
  246. package/lib/services/cocoapods-service.js +153 -112
  247. package/lib/services/debug-data-service.js +1 -0
  248. package/lib/services/debug-service-base.js +7 -0
  249. package/lib/services/device/device-install-app-service.js +72 -54
  250. package/lib/services/doctor-service.js +135 -101
  251. package/lib/services/extensibility-service.js +108 -81
  252. package/lib/services/files-hash-service.js +44 -26
  253. package/lib/services/hmr-status-service.js +3 -1
  254. package/lib/services/info-service.js +1 -0
  255. package/lib/services/initialize-service.js +54 -37
  256. package/lib/services/ios/export-options-plist-service.js +55 -38
  257. package/lib/services/ios/ios-signing-service.js +191 -168
  258. package/lib/services/ios/spm-service.js +73 -43
  259. package/lib/services/ios/xcodebuild-args-service.js +103 -77
  260. package/lib/services/ios/xcodebuild-command-service.js +26 -14
  261. package/lib/services/ios/xcodebuild-service.js +72 -52
  262. package/lib/services/ios-debugger-port-service.js +38 -24
  263. package/lib/services/ios-device-debug-service.js +103 -75
  264. package/lib/services/ios-entitlements-service.js +43 -31
  265. package/lib/services/ios-extensions-service.js +30 -18
  266. package/lib/services/ios-log-filter.js +20 -0
  267. package/lib/services/ios-native-target-service.js +6 -4
  268. package/lib/services/ios-project-service.js +605 -437
  269. package/lib/services/ios-provision-service.js +132 -108
  270. package/lib/services/ios-watch-app-service.js +33 -21
  271. package/lib/services/ip-service.js +55 -38
  272. package/lib/services/itmstransporter-service.js +153 -129
  273. package/lib/services/karma-execution.js +2 -0
  274. package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
  275. package/lib/services/livesync/android-device-livesync-service.js +151 -120
  276. package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
  277. package/lib/services/livesync/android-livesync-service.js +36 -14
  278. package/lib/services/livesync/android-livesync-tool.js +117 -90
  279. package/lib/services/livesync/device-livesync-service-base.js +30 -15
  280. package/lib/services/livesync/ios-device-livesync-service.js +150 -114
  281. package/lib/services/livesync/ios-livesync-service.js +60 -42
  282. package/lib/services/livesync/livesync-socket.js +1 -0
  283. package/lib/services/livesync/platform-livesync-service-base.js +124 -94
  284. package/lib/services/livesync-process-data-service.js +1 -0
  285. package/lib/services/log-parser-service.js +2 -1
  286. package/lib/services/log-source-map-service.js +56 -30
  287. package/lib/services/marking-mode-service.js +33 -17
  288. package/lib/services/metadata-filtering-service.js +1 -0
  289. package/lib/services/npm-config-service.js +5 -1
  290. package/lib/services/pacote-service.js +73 -51
  291. package/lib/services/performance-service.js +4 -2
  292. package/lib/services/platform/add-platform-service.js +119 -51
  293. package/lib/services/platform/platform-validation-service.js +34 -22
  294. package/lib/services/platform/prepare-native-platform-service.js +65 -49
  295. package/lib/services/platform-environment-requirements.js +43 -27
  296. package/lib/services/platform-project-service-base.js +1 -0
  297. package/lib/services/platforms-data-service.js +1 -0
  298. package/lib/services/plugins-service.js +168 -125
  299. package/lib/services/prepare-data-service.js +1 -0
  300. package/lib/services/project-backup-service.js +5 -1
  301. package/lib/services/project-changes-service.js +152 -124
  302. package/lib/services/project-cleanup-service.js +79 -64
  303. package/lib/services/project-config-service.js +111 -73
  304. package/lib/services/project-data-service.js +154 -108
  305. package/lib/services/project-name-service.js +44 -28
  306. package/lib/services/project-service.js +113 -84
  307. package/lib/services/project-templates-service.js +68 -52
  308. package/lib/services/qr-code-terminal-service.js +1 -0
  309. package/lib/services/require-service.js +1 -0
  310. package/lib/services/start-service.js +60 -41
  311. package/lib/services/temp-service.js +22 -8
  312. package/lib/services/terminal-spinner-service.js +28 -15
  313. package/lib/services/test-execution-service.js +79 -59
  314. package/lib/services/test-initialization-service.js +6 -2
  315. package/lib/services/timeline-profiler-service.js +2 -1
  316. package/lib/services/user-settings-service.js +1 -0
  317. package/lib/services/versions-service.js +140 -119
  318. package/lib/services/watch-ignore-list-service.js +1 -0
  319. package/lib/services/webpack/webpack-compiler-service.js +279 -215
  320. package/lib/services/xcconfig-service.js +21 -8
  321. package/lib/services/xcproj-service.js +1 -0
  322. package/lib/shared-event-bus.js +6 -0
  323. package/lib/sys-info.js +63 -45
  324. package/lib/tools/config-manipulation/config-transformer.js +21 -0
  325. package/lib/tools/node-modules/node-modules-builder.js +28 -16
  326. package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
  327. package/lib/yarn-package-manager.js +79 -59
  328. package/lib/yarn2-package-manager.js +82 -60
  329. package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
  330. package/node_modules/@npmcli/move-file/README.md +69 -0
  331. package/node_modules/@npmcli/move-file/lib/index.js +185 -0
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
  342. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
  343. package/node_modules/@npmcli/move-file/package.json +47 -0
  344. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  345. package/node_modules/balanced-match/LICENSE.md +21 -0
  346. package/node_modules/balanced-match/README.md +97 -0
  347. package/node_modules/balanced-match/index.js +62 -0
  348. package/node_modules/balanced-match/package.json +48 -0
  349. package/node_modules/concat-map/.travis.yml +4 -0
  350. package/node_modules/concat-map/LICENSE +18 -0
  351. package/node_modules/concat-map/README.markdown +62 -0
  352. package/node_modules/concat-map/example/map.js +6 -0
  353. package/node_modules/concat-map/index.js +13 -0
  354. package/node_modules/concat-map/package.json +43 -0
  355. package/node_modules/concat-map/test/map.js +39 -0
  356. package/node_modules/fs.realpath/LICENSE +43 -0
  357. package/node_modules/fs.realpath/README.md +33 -0
  358. package/node_modules/fs.realpath/index.js +66 -0
  359. package/node_modules/fs.realpath/old.js +303 -0
  360. package/node_modules/fs.realpath/package.json +26 -0
  361. package/node_modules/inflight/LICENSE +15 -0
  362. package/node_modules/inflight/README.md +37 -0
  363. package/node_modules/inflight/inflight.js +54 -0
  364. package/node_modules/inflight/package.json +29 -0
  365. package/node_modules/inherits/LICENSE +16 -0
  366. package/node_modules/inherits/README.md +42 -0
  367. package/node_modules/inherits/inherits.js +9 -0
  368. package/node_modules/inherits/inherits_browser.js +27 -0
  369. package/node_modules/inherits/package.json +29 -0
  370. package/node_modules/once/LICENSE +15 -0
  371. package/node_modules/once/README.md +79 -0
  372. package/node_modules/once/once.js +42 -0
  373. package/node_modules/once/package.json +33 -0
  374. package/node_modules/path-is-absolute/index.js +20 -0
  375. package/node_modules/path-is-absolute/license +21 -0
  376. package/node_modules/path-is-absolute/package.json +43 -0
  377. package/node_modules/path-is-absolute/readme.md +59 -0
  378. package/node_modules/rimraf/LICENSE +15 -0
  379. package/node_modules/rimraf/README.md +101 -0
  380. package/node_modules/rimraf/bin.js +68 -0
  381. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
  382. package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
  383. package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
  384. package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
  385. package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
  386. package/node_modules/rimraf/node_modules/glob/README.md +378 -0
  387. package/node_modules/rimraf/node_modules/glob/common.js +238 -0
  388. package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
  389. package/node_modules/rimraf/node_modules/glob/package.json +55 -0
  390. package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
  391. package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
  392. package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
  393. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
  394. package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
  395. package/node_modules/rimraf/package.json +32 -0
  396. package/node_modules/rimraf/rimraf.js +360 -0
  397. package/node_modules/stringify-package/LICENSE +13 -0
  398. package/node_modules/stringify-package/README.md +55 -0
  399. package/node_modules/stringify-package/index.js +18 -0
  400. package/node_modules/stringify-package/package.json +38 -0
  401. package/node_modules/wrappy/LICENSE +15 -0
  402. package/node_modules/wrappy/README.md +36 -0
  403. package/node_modules/wrappy/package.json +29 -0
  404. package/node_modules/wrappy/wrappy.js +33 -0
  405. package/package.json +79 -64
@@ -1,4 +1,13 @@
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.AndroidDeviceFileSystem = void 0;
4
13
  const path = require("path");
@@ -17,118 +26,145 @@ class AndroidDeviceFileSystem {
17
26
  this.$injector = $injector;
18
27
  this._deviceHashServices = Object.create(null);
19
28
  }
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);
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
+ });
26
37
  }
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();
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",
42
45
  });
43
- readStream.on("error", (err) => {
44
- reject(err);
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
+ });
45
58
  });
46
- });
47
- }
59
+ }
60
+ });
48
61
  }
49
- async getFileContent(deviceFilePath, appIdentifier) {
50
- const result = await this.adb.executeShellCommand(["cat", deviceFilePath]);
51
- return result;
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
+ });
52
67
  }
53
- async putFile(localFilePath, deviceFilePath, appIdentifier) {
54
- await this.adb.pushFile(localFilePath, deviceFilePath);
68
+ putFile(localFilePath, deviceFilePath, appIdentifier) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ yield this.adb.pushFile(localFilePath, deviceFilePath);
71
+ });
55
72
  }
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);
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;
65
106
  }
66
- else if (fstat.isDirectory()) {
67
- const dirToChmod = localToDevicePathData.getDevicePath();
68
- directoriesToChmod.push(dirToChmod);
107
+ else {
108
+ transferredLocalToDevicePaths = yield this.pushFiles(localToDevicePaths);
69
109
  }
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;
75
- }
76
- async transferDirectory(deviceAppData, localToDevicePaths, projectFilesPath) {
77
- const minAndroidWithoutAdbPushDir = "9.0.0";
78
- const isAdbPushDirSupported = semver.lt(semver.coerce(deviceAppData.device.deviceInfo.version), minAndroidWithoutAdbPushDir);
79
- const deviceProjectDir = await deviceAppData.getDeviceProjectRootPath();
80
- let transferredLocalToDevicePaths = [];
81
- if (isAdbPushDirSupported) {
82
- await this.adb.pushFile(projectFilesPath, deviceProjectDir);
83
- transferredLocalToDevicePaths = localToDevicePaths;
84
- }
85
- else {
86
- transferredLocalToDevicePaths = await this.pushFiles(localToDevicePaths);
87
- }
88
- if (transferredLocalToDevicePaths.length) {
89
- const filesToChmodOnDevice = transferredLocalToDevicePaths.map((localToDevicePath) => localToDevicePath.getDevicePath());
90
- await this.chmodFiles(deviceProjectDir, filesToChmodOnDevice);
91
- }
92
- return transferredLocalToDevicePaths;
110
+ if (transferredLocalToDevicePaths.length) {
111
+ const filesToChmodOnDevice = transferredLocalToDevicePaths.map((localToDevicePath) => localToDevicePath.getDevicePath());
112
+ yield this.chmodFiles(deviceProjectDir, filesToChmodOnDevice);
113
+ }
114
+ return transferredLocalToDevicePaths;
115
+ });
93
116
  }
94
- async chmodFiles(deviceProjectRoot, filesToChmodOnDevice) {
95
- const commandsDeviceFilePath = this.$mobileHelper.buildDevicePath(deviceProjectRoot, "nativescript.commands.sh");
96
- await this.createFileOnDevice(commandsDeviceFilePath, `chmod 0777 ${filesToChmodOnDevice.join(" ")}`);
97
- await this.adb.executeShellCommand([commandsDeviceFilePath]);
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
+ });
98
123
  }
99
- async pushFiles(localToDevicePaths) {
100
- this.$logger.trace("Changed hashes are:", localToDevicePaths);
101
- const transferredFiles = [];
102
- const transferFileAction = async (localToDevicePathData) => {
103
- transferredFiles.push(localToDevicePathData);
104
- await this.transferFile(localToDevicePathData.getLocalPath(), localToDevicePathData.getDevicePath());
105
- };
106
- await (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, transferFileAction);
107
- return transferredFiles;
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
+ });
108
135
  }
109
- async transferFile(localPath, devicePath) {
110
- this.$logger.trace(`Transfering ${localPath} to ${devicePath}`);
111
- const stats = this.$fs.getFsStats(localPath);
112
- if (stats.isDirectory()) {
113
- await this.adb.executeShellCommand(["mkdir", path.dirname(devicePath)]);
114
- }
115
- else {
116
- await this.adb.pushFile(localPath, devicePath);
117
- }
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
+ });
118
147
  }
119
- async createFileOnDevice(deviceFilePath, fileContent) {
120
- const hostTmpDir = await this.$tempService.mkdirSync("application-");
121
- const commandsFileHostPath = path.join(hostTmpDir, "temp.commands.file");
122
- this.$fs.writeFile(commandsFileHostPath, fileContent);
123
- await this.transferFile(commandsFileHostPath, deviceFilePath);
124
- await this.adb.executeShellCommand(["chmod", "0777", deviceFilePath]);
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
+ });
125
157
  }
126
- async deleteFile(deviceFilePath, appIdentifier) {
127
- await this.adb.executeShellCommand(["rm", "-rf", deviceFilePath]);
158
+ deleteFile(deviceFilePath, appIdentifier) {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ yield this.adb.executeShellCommand(["rm", "-rf", deviceFilePath]);
161
+ });
128
162
  }
129
- async updateHashesOnDevice(hashes, appIdentifier) {
130
- const deviceHashService = this.getDeviceHashService(appIdentifier);
131
- await deviceHashService.uploadHashFileToDevice(hashes);
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
168
  }
133
169
  getDeviceHashService(appIdentifier) {
134
170
  if (!this._deviceHashServices[appIdentifier]) {
@@ -141,3 +177,4 @@ class AndroidDeviceFileSystem {
141
177
  }
142
178
  }
143
179
  exports.AndroidDeviceFileSystem = AndroidDeviceFileSystem;
180
+ //# sourceMappingURL=android-device-file-system.js.map
@@ -5,6 +5,15 @@ 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
+ };
8
17
  Object.defineProperty(exports, "__esModule", { value: true });
9
18
  exports.AndroidDeviceHashService = void 0;
10
19
  const path = require("path");
@@ -23,39 +32,51 @@ class AndroidDeviceHashService {
23
32
  get hashFileDevicePath() {
24
33
  return this.$mobileHelper.buildDevicePath(constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME, this.appIdentifier, AndroidDeviceHashService.HASH_FILE_NAME);
25
34
  }
26
- async doesShasumFileExistsOnDevice() {
27
- const lsResult = await this.adb.executeShellCommand([
28
- "ls",
29
- this.hashFileDevicePath,
30
- ]);
31
- return !!(lsResult && lsResult.trim() === this.hashFileDevicePath);
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
+ });
32
43
  }
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;
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
+ });
39
52
  }
40
- async uploadHashFileToDevice(data) {
41
- const hashFileLocalPath = await this.getHashFileLocalPath();
42
- this.$fs.writeJson(hashFileLocalPath, data);
43
- await this.adb.pushFile(hashFileLocalPath, this.hashFileDevicePath);
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
+ });
44
59
  }
45
- async updateHashes(localToDevicePaths) {
46
- const oldShasums = (await this.getShasumsFromDevice()) || {};
47
- await this.generateHashesFromLocalToDevicePaths(localToDevicePaths, oldShasums);
48
- await this.uploadHashFileToDevice(oldShasums);
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
+ });
49
66
  }
50
- async generateHashesFromLocalToDevicePaths(localToDevicePaths, initialShasums = {}) {
51
- const action = async (localToDevicePathData) => {
52
- const localPath = localToDevicePathData.getLocalPath();
53
- if (this.$fs.getFsStats(localPath).isFile()) {
54
- initialShasums[localPath] = await this.$fs.getFileShasum(localPath);
55
- }
56
- };
57
- await (0, helpers_1.executeActionByChunks)(localToDevicePaths, constants_1.DEFAULT_CHUNK_SIZE, action);
58
- return initialShasums;
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
+ });
59
80
  }
60
81
  getDevicePaths(localToDevicePaths) {
61
82
  return _.map(localToDevicePaths, (localToDevicePathData) => {
@@ -68,34 +89,39 @@ class AndroidDeviceHashService {
68
89
  }
69
90
  return _.omitBy(currentShasums, (hash, pathToFile) => !!oldShasums[pathToFile] && oldShasums[pathToFile] === hash);
70
91
  }
71
- async removeHashes(localToDevicePaths) {
72
- const oldShasums = await this.getShasumsFromDevice();
73
- if (oldShasums) {
74
- const fileToShasumDictionary = _.omit(oldShasums, localToDevicePaths.map((ldp) => ldp.getLocalPath()));
75
- await this.uploadHashFileToDevice(fileToShasumDictionary);
76
- return true;
77
- }
78
- return false;
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
+ });
79
102
  }
80
- async getHashFileLocalPath() {
81
- return path.join(await this.getTempDir(), AndroidDeviceHashService.HASH_FILE_NAME);
103
+ getHashFileLocalPath() {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ return path.join(yield this.getTempDir(), AndroidDeviceHashService.HASH_FILE_NAME);
106
+ });
82
107
  }
83
108
  getTempDir() {
84
109
  return this.$tempService.mkdirSync(`android-device-hash-service-${this.appIdentifier}`);
85
110
  }
86
- async downloadHashFileFromDevice() {
87
- const hashFileLocalPath = await this.getHashFileLocalPath();
88
- if (!this.$fs.exists(hashFileLocalPath)) {
89
- await this.adb.executeCommand([
90
- "pull",
91
- this.hashFileDevicePath,
92
- await this.getTempDir(),
93
- ]);
94
- }
95
- return hashFileLocalPath;
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
+ });
96
123
  }
97
124
  }
98
- exports.AndroidDeviceHashService = AndroidDeviceHashService;
99
125
  AndroidDeviceHashService.HASH_FILE_NAME = "hashes";
100
126
  __decorate([
101
127
  (0, decorators_1.cache)()
@@ -106,3 +132,5 @@ __decorate([
106
132
  __decorate([
107
133
  (0, decorators_1.cache)()
108
134
  ], AndroidDeviceHashService.prototype, "getTempDir", null);
135
+ exports.AndroidDeviceHashService = AndroidDeviceHashService;
136
+ //# sourceMappingURL=android-device-hash-service.js.map
@@ -5,6 +5,15 @@ 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
+ };
8
17
  Object.defineProperty(exports, "__esModule", { value: true });
9
18
  exports.AndroidDevice = void 0;
10
19
  const device_android_debug_bridge_1 = require("./device-android-debug-bridge");
@@ -24,44 +33,48 @@ class AndroidDevice {
24
33
  this.$logcatHelper = $logcatHelper;
25
34
  this.$injector = $injector;
26
35
  }
27
- async init() {
28
- this.adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
29
- identifier: this.identifier,
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);
30
77
  });
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
- details = await this.getDeviceDetails(["cat", "/system/build.prop"]);
36
- }
37
- this.$logger.trace(details);
38
- const adbStatusInfo = AndroidDevice.ADB_DEVICE_STATUS_INFO[this.status];
39
- const type = await this.getType();
40
- let version = details.release;
41
- if (version && version.toLowerCase() === "q") {
42
- version = "10.0.0";
43
- }
44
- this.deviceInfo = {
45
- identifier: this.identifier,
46
- displayName: details.name,
47
- model: details.model,
48
- version,
49
- vendor: details.brand,
50
- platform: this.$devicePlatformsConstants.Android,
51
- status: adbStatusInfo ? adbStatusInfo.deviceStatus : this.status,
52
- errorHelp: adbStatusInfo ? adbStatusInfo.errorHelp : "Unknown status",
53
- isTablet: this.getIsTablet(details),
54
- type,
55
- connectionTypes: [constants_1.DeviceConnectionType.Local],
56
- };
57
- this.deviceInfo.connectionTypes = this.isEmulator
58
- ? [constants_1.DeviceConnectionType.Local]
59
- : [constants_1.DeviceConnectionType.USB];
60
- if (this.isEmulator) {
61
- this.deviceInfo.displayName = await this.$androidEmulatorServices.getRunningEmulatorName(this.identifier);
62
- this.deviceInfo.imageIdentifier = await this.$androidEmulatorServices.getRunningEmulatorImageIdentifier(this.identifier);
63
- }
64
- this.$logger.trace(this.deviceInfo);
65
78
  }
66
79
  get isEmulator() {
67
80
  return this.deviceInfo.type === constants.DeviceTypes.Emulator;
@@ -69,51 +82,61 @@ class AndroidDevice {
69
82
  get isOnlyWiFiConnected() {
70
83
  return false;
71
84
  }
72
- async openDeviceLogStream() {
73
- if (this.deviceInfo.status === constants.CONNECTED_STATUS) {
74
- await this.$logcatHelper.start({
75
- deviceIdentifier: this.identifier,
76
- keepSingleProcess: true,
77
- });
78
- }
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
+ });
79
94
  }
80
95
  detach() {
81
96
  if (this.isEmulator) {
82
97
  this.$androidEmulatorServices.detach(this.deviceInfo);
83
98
  }
84
99
  }
85
- async getDeviceDetails(shellCommandArgs) {
86
- const parsedDetails = {};
87
- this.$logger.trace(`Trying to get information for Android device. Command is: ${shellCommandArgs}`);
88
- try {
89
- const details = await this.adb.executeShellCommand(shellCommandArgs);
90
- details.split(/\r?\n|\r/).forEach((value) => {
91
- const match = /(?:\[?ro\.build\.version|ro\.product|ro\.build)\.(.+?)]?(?:\:|=)(?:\s*?\[)?(.*?)]?$/.exec(value);
92
- if (match) {
93
- parsedDetails[match[1]] = match[2];
94
- }
95
- });
96
- }
97
- catch (err) {
98
- this.$logger.trace(`Error while getting details from Android device. Command is: ${shellCommandArgs}. Error is: ${err}`);
99
- }
100
- this.$logger.trace(parsedDetails);
101
- return parsedDetails;
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
+ });
102
122
  }
103
123
  getIsTablet(details) {
124
+ //version 3.x.x (also known as Honeycomb) is a tablet only version
104
125
  return (details &&
105
126
  (_.startsWith(details.release, "3.") ||
106
127
  _.includes((details.characteristics || "").toLowerCase(), "tablet")));
107
128
  }
108
- async getType() {
109
- const runningEmulatorIds = await this.$androidEmulatorServices.getRunningEmulatorIds();
110
- if (_.find(runningEmulatorIds, (emulatorId) => emulatorId === this.identifier)) {
111
- return constants.DeviceTypes.Emulator;
112
- }
113
- return constants.DeviceTypes.Device;
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
137
  }
115
138
  }
116
- exports.AndroidDevice = AndroidDevice;
139
+ // http://stackoverflow.com/questions/31178195/what-does-adb-device-status-mean
117
140
  AndroidDevice.ADB_DEVICE_STATUS_INFO = {
118
141
  device: {
119
142
  errorHelp: null,
@@ -139,3 +162,5 @@ AndroidDevice.ADB_DEVICE_STATUS_INFO = {
139
162
  __decorate([
140
163
  (0, decorators_1.cache)()
141
164
  ], AndroidDevice.prototype, "init", null);
165
+ exports.AndroidDevice = AndroidDevice;
166
+ //# sourceMappingURL=android-device.js.map