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
@@ -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.AndroidDeviceLiveSyncService = void 0;
19
10
  const android_device_livesync_service_base_1 = require("./android-device-livesync-service-base");
@@ -34,172 +25,152 @@ class AndroidDeviceLiveSyncService extends android_device_livesync_service_base_
34
25
  this.platformsDataService = platformsDataService;
35
26
  this.device = device;
36
27
  }
37
- transferFilesOnDevice(deviceAppData, localToDevicePaths) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- yield this.device.fileSystem.transferFiles(deviceAppData, localToDevicePaths);
40
- });
28
+ async transferFilesOnDevice(deviceAppData, localToDevicePaths) {
29
+ await this.device.fileSystem.transferFiles(deviceAppData, localToDevicePaths);
41
30
  }
42
- transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- yield this.device.fileSystem.transferDirectory(deviceAppData, localToDevicePaths, projectFilesPath);
45
- });
31
+ async transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
32
+ await this.device.fileSystem.transferDirectory(deviceAppData, localToDevicePaths, projectFilesPath);
46
33
  }
47
- restartApplication(projectData, liveSyncInfo) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const devicePathRoot = util.format(constants_2.ANDROID_DEVICE_APP_ROOT_TEMPLATE, liveSyncInfo.deviceAppData.appIdentifier);
50
- const devicePath = this.$mobileHelper.buildDevicePath(devicePathRoot, "code_cache", "secondary_dexes", "proxyThumb");
51
- yield this.device.adb.executeShellCommand(["rm", "-rf", devicePath]);
52
- yield this.device.applicationManager.restartApplication({
53
- appId: liveSyncInfo.deviceAppData.appIdentifier,
54
- projectName: projectData.projectName,
55
- waitForDebugger: liveSyncInfo.waitForDebugger,
56
- projectDir: projectData.projectDir,
57
- });
34
+ async restartApplication(projectData, liveSyncInfo) {
35
+ const devicePathRoot = util.format(constants_2.ANDROID_DEVICE_APP_ROOT_TEMPLATE, liveSyncInfo.deviceAppData.appIdentifier);
36
+ const devicePath = this.$mobileHelper.buildDevicePath(devicePathRoot, "code_cache", "secondary_dexes", "proxyThumb");
37
+ await this.device.adb.executeShellCommand(["rm", "-rf", devicePath]);
38
+ await this.device.applicationManager.restartApplication({
39
+ appId: liveSyncInfo.deviceAppData.appIdentifier,
40
+ projectName: projectData.projectName,
41
+ waitForDebugger: liveSyncInfo.waitForDebugger,
42
+ projectDir: projectData.projectDir,
58
43
  });
59
44
  }
60
- shouldRestart(projectData, liveSyncInfo) {
61
- return __awaiter(this, void 0, void 0, function* () {
62
- let shouldRestart = false;
63
- const localToDevicePaths = liveSyncInfo.modifiedFilesData;
64
- const canExecuteFastSync = !liveSyncInfo.isFullSync &&
65
- !_.some(localToDevicePaths, (localToDevicePath) => !this.canExecuteFastSync(liveSyncInfo, localToDevicePath.getLocalPath(), projectData, this.device.deviceInfo.platform));
66
- if (!canExecuteFastSync || liveSyncInfo.waitForDebugger) {
67
- shouldRestart = true;
68
- }
69
- return shouldRestart;
45
+ async shouldRestart(projectData, liveSyncInfo) {
46
+ let shouldRestart = false;
47
+ const localToDevicePaths = liveSyncInfo.modifiedFilesData;
48
+ const canExecuteFastSync = !liveSyncInfo.isFullSync &&
49
+ !_.some(localToDevicePaths, (localToDevicePath) => !this.canExecuteFastSync(liveSyncInfo, localToDevicePath.getLocalPath(), projectData, this.device.deviceInfo.platform));
50
+ if (!canExecuteFastSync || liveSyncInfo.waitForDebugger) {
51
+ shouldRestart = true;
52
+ }
53
+ return shouldRestart;
54
+ }
55
+ async tryRefreshApplication(projectData, liveSyncInfo) {
56
+ let didRefresh = true;
57
+ const deviceAppData = liveSyncInfo.deviceAppData;
58
+ const localToDevicePaths = liveSyncInfo.modifiedFilesData;
59
+ const deviceProjectRootDirname = await this.$devicePathProvider.getDeviceProjectRootPath(liveSyncInfo.deviceAppData.device, {
60
+ appIdentifier: liveSyncInfo.deviceAppData.appIdentifier,
61
+ getDirname: true,
70
62
  });
63
+ await this.device.adb.executeShellCommand([
64
+ "chmod",
65
+ "777",
66
+ path.dirname(deviceProjectRootDirname),
67
+ deviceProjectRootDirname,
68
+ `${deviceProjectRootDirname}/sync`,
69
+ ]);
70
+ didRefresh = await this.reloadApplicationFiles(deviceAppData, localToDevicePaths);
71
+ return didRefresh;
71
72
  }
72
- tryRefreshApplication(projectData, liveSyncInfo) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- let didRefresh = true;
75
- const deviceAppData = liveSyncInfo.deviceAppData;
76
- const localToDevicePaths = liveSyncInfo.modifiedFilesData;
77
- const deviceProjectRootDirname = yield this.$devicePathProvider.getDeviceProjectRootPath(liveSyncInfo.deviceAppData.device, {
78
- appIdentifier: liveSyncInfo.deviceAppData.appIdentifier,
79
- getDirname: true,
80
- });
81
- yield this.device.adb.executeShellCommand([
82
- "chmod",
83
- "777",
84
- path.dirname(deviceProjectRootDirname),
85
- deviceProjectRootDirname,
86
- `${deviceProjectRootDirname}/sync`,
87
- ]);
88
- didRefresh = yield this.reloadApplicationFiles(deviceAppData, localToDevicePaths);
89
- return didRefresh;
73
+ async cleanLivesyncDirectories(deviceAppData) {
74
+ const deviceRootPath = await this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
75
+ appIdentifier: deviceAppData.appIdentifier,
76
+ getDirname: true,
90
77
  });
78
+ await this.device.adb.executeShellCommand([
79
+ "rm",
80
+ "-rf",
81
+ this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.FULLSYNC_DIR_NAME),
82
+ this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.SYNC_DIR_NAME),
83
+ this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME),
84
+ ]);
91
85
  }
92
- cleanLivesyncDirectories(deviceAppData) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const deviceRootPath = yield this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
95
- appIdentifier: deviceAppData.appIdentifier,
96
- getDirname: true,
97
- });
98
- yield this.device.adb.executeShellCommand([
99
- "rm",
100
- "-rf",
101
- this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.FULLSYNC_DIR_NAME),
102
- this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.SYNC_DIR_NAME),
103
- this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME),
104
- ]);
86
+ async beforeLiveSyncAction(deviceAppData) {
87
+ const deviceRootPath = await this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
88
+ appIdentifier: deviceAppData.appIdentifier,
89
+ getDirname: true,
105
90
  });
91
+ const deviceRootDir = path.dirname(deviceRootPath);
92
+ const deviceRootBasename = path.basename(deviceRootPath);
93
+ const listResult = await this.device.adb.executeShellCommand([
94
+ "ls",
95
+ "-l",
96
+ deviceRootDir,
97
+ ]);
98
+ const regex = new RegExp(`^-.*${deviceRootBasename}$`, "m");
99
+ const matchingFile = (listResult || "").match(regex);
100
+ // Check if there is already a file with deviceRootBasename. If so, delete it as it breaks LiveSyncing.
101
+ if (matchingFile && matchingFile[0] && _.startsWith(matchingFile[0], "-")) {
102
+ await this.device.adb.executeShellCommand(["rm", "-f", deviceRootPath]);
103
+ }
104
+ await this.cleanLivesyncDirectories(deviceAppData);
106
105
  }
107
- beforeLiveSyncAction(deviceAppData) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- const deviceRootPath = yield this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
106
+ async reloadApplicationFiles(deviceAppData, localToDevicePaths) {
107
+ if (!this.port) {
108
+ this.port = await this.$androidProcessService.forwardFreeTcpToAbstractPort({
109
+ deviceIdentifier: deviceAppData.device.deviceInfo.identifier,
110
110
  appIdentifier: deviceAppData.appIdentifier,
111
- getDirname: true,
111
+ abstractPort: `localabstract:${deviceAppData.appIdentifier}-livesync`,
112
112
  });
113
- const deviceRootDir = path.dirname(deviceRootPath);
114
- const deviceRootBasename = path.basename(deviceRootPath);
115
- const listResult = yield this.device.adb.executeShellCommand([
116
- "ls",
117
- "-l",
118
- deviceRootDir,
119
- ]);
120
- const regex = new RegExp(`^-.*${deviceRootBasename}$`, "m");
121
- const matchingFile = (listResult || "").match(regex);
122
- // Check if there is already a file with deviceRootBasename. If so, delete it as it breaks LiveSyncing.
123
- if (matchingFile && matchingFile[0] && _.startsWith(matchingFile[0], "-")) {
124
- yield this.device.adb.executeShellCommand(["rm", "-f", deviceRootPath]);
125
- }
126
- yield this.cleanLivesyncDirectories(deviceAppData);
127
- });
113
+ }
114
+ if (await this.awaitRuntimeReloadSuccessMessage()) {
115
+ await this.cleanLivesyncDirectories(deviceAppData);
116
+ }
117
+ else {
118
+ return false;
119
+ }
120
+ return true;
128
121
  }
129
- reloadApplicationFiles(deviceAppData, localToDevicePaths) {
130
- return __awaiter(this, void 0, void 0, function* () {
131
- if (!this.port) {
132
- this.port = yield this.$androidProcessService.forwardFreeTcpToAbstractPort({
133
- deviceIdentifier: deviceAppData.device.deviceInfo.identifier,
134
- appIdentifier: deviceAppData.appIdentifier,
135
- abstractPort: `localabstract:${deviceAppData.appIdentifier}-livesync`,
136
- });
137
- }
138
- if (yield this.awaitRuntimeReloadSuccessMessage()) {
139
- yield this.cleanLivesyncDirectories(deviceAppData);
140
- }
141
- else {
142
- return false;
143
- }
144
- return true;
122
+ async removeFiles(deviceAppData, localToDevicePaths) {
123
+ const deviceRootPath = await this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
124
+ appIdentifier: deviceAppData.appIdentifier,
125
+ getDirname: true,
145
126
  });
127
+ for (const localToDevicePathData of localToDevicePaths) {
128
+ const relativeUnixPath = _.trimStart(helpers.fromWindowsRelativePathToUnix(localToDevicePathData.getRelativeToProjectBasePath()), "/");
129
+ const deviceFilePath = this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME, relativeUnixPath);
130
+ await this.device.adb.executeShellCommand([
131
+ "mkdir",
132
+ "-p",
133
+ path.dirname(deviceFilePath),
134
+ " && ",
135
+ "touch",
136
+ deviceFilePath,
137
+ ]);
138
+ }
139
+ const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
140
+ await deviceHashService.removeHashes(localToDevicePaths);
146
141
  }
147
- removeFiles(deviceAppData, localToDevicePaths) {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- const deviceRootPath = yield this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
150
- appIdentifier: deviceAppData.appIdentifier,
151
- getDirname: true,
142
+ async awaitRuntimeReloadSuccessMessage() {
143
+ return new Promise((resolve, reject) => {
144
+ let isResolved = false;
145
+ const socket = new net.Socket();
146
+ socket.connect(this.port, process.env.NATIVESCRIPT_LIVESYNC_ADDRESS || "127.0.0.1", () => {
147
+ socket.write(Buffer.from([0, 0, 0, 1, 1]));
152
148
  });
153
- for (const localToDevicePathData of localToDevicePaths) {
154
- const relativeUnixPath = _.trimStart(helpers.fromWindowsRelativePathToUnix(localToDevicePathData.getRelativeToProjectBasePath()), "/");
155
- const deviceFilePath = this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME, relativeUnixPath);
156
- yield this.device.adb.executeShellCommand([
157
- "mkdir",
158
- "-p",
159
- path.dirname(deviceFilePath),
160
- " && ",
161
- "touch",
162
- deviceFilePath,
163
- ]);
164
- }
165
- const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
166
- yield deviceHashService.removeHashes(localToDevicePaths);
167
- });
168
- }
169
- awaitRuntimeReloadSuccessMessage() {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- return new Promise((resolve, reject) => {
172
- let isResolved = false;
173
- const socket = new net.Socket();
174
- socket.connect(this.port, process.env.NATIVESCRIPT_LIVESYNC_ADDRESS || "127.0.0.1", () => {
175
- socket.write(Buffer.from([0, 0, 0, 1, 1]));
176
- });
177
- socket.on("data", (data) => {
149
+ socket.on("data", (data) => {
150
+ isResolved = true;
151
+ socket.destroy();
152
+ resolve(true);
153
+ });
154
+ socket.on("error", () => {
155
+ if (!isResolved) {
156
+ isResolved = true;
157
+ resolve(false);
158
+ }
159
+ });
160
+ socket.on("close", () => {
161
+ if (!isResolved) {
178
162
  isResolved = true;
179
- socket.destroy();
180
- resolve(true);
181
- });
182
- socket.on("error", () => {
183
- if (!isResolved) {
184
- isResolved = true;
185
- resolve(false);
186
- }
187
- });
188
- socket.on("close", () => {
189
- if (!isResolved) {
190
- isResolved = true;
191
- resolve(false);
192
- }
193
- });
163
+ resolve(false);
164
+ }
194
165
  });
195
166
  });
196
167
  }
197
168
  }
169
+ exports.AndroidDeviceLiveSyncService = AndroidDeviceLiveSyncService;
198
170
  __decorate([
199
171
  (0, decorators_1.performanceLog)()
200
172
  ], AndroidDeviceLiveSyncService.prototype, "beforeLiveSyncAction", null);
201
173
  __decorate([
202
174
  (0, decorators_1.performanceLog)()
203
175
  ], AndroidDeviceLiveSyncService.prototype, "removeFiles", null);
204
- exports.AndroidDeviceLiveSyncService = AndroidDeviceLiveSyncService;
205
176
  //# sourceMappingURL=android-device-livesync-service.js.map
@@ -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.AndroidDeviceSocketsLiveSyncService = void 0;
13
4
  const android_device_livesync_service_base_1 = require("./android-device-livesync-service-base");
@@ -30,171 +21,149 @@ class AndroidDeviceSocketsLiveSyncService extends android_device_livesync_servic
30
21
  this.$tempService = $tempService;
31
22
  this.livesyncTool = this.$injector.resolve(android_livesync_tool_1.AndroidLivesyncTool);
32
23
  }
33
- beforeLiveSyncAction(deviceAppData) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- if (!this.livesyncTool.hasConnection()) {
36
- try {
37
- const pathToLiveSyncFile = yield this.$tempService.path({
38
- prefix: "livesync",
39
- });
40
- this.$fs.writeFile(pathToLiveSyncFile, "");
41
- yield this.device.fileSystem.putFile(pathToLiveSyncFile, this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
42
- yield this.device.applicationManager.startApplication({
43
- appId: deviceAppData.appIdentifier,
44
- projectName: this.data.projectName,
45
- justLaunch: true,
46
- waitForDebugger: false,
47
- projectDir: deviceAppData.projectDir,
48
- });
49
- yield this.connectLivesyncTool(this.data.projectIdentifiers.android, deviceAppData.connectTimeout);
50
- }
51
- catch (err) {
52
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
53
- throw err;
54
- }
24
+ async beforeLiveSyncAction(deviceAppData) {
25
+ if (!this.livesyncTool.hasConnection()) {
26
+ try {
27
+ const pathToLiveSyncFile = await this.$tempService.path({
28
+ prefix: "livesync",
29
+ });
30
+ this.$fs.writeFile(pathToLiveSyncFile, "");
31
+ await this.device.fileSystem.putFile(pathToLiveSyncFile, this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
32
+ await this.device.applicationManager.startApplication({
33
+ appId: deviceAppData.appIdentifier,
34
+ projectName: this.data.projectName,
35
+ justLaunch: true,
36
+ waitForDebugger: false,
37
+ projectDir: deviceAppData.projectDir,
38
+ });
39
+ await this.connectLivesyncTool(this.data.projectIdentifiers.android, deviceAppData.connectTimeout);
55
40
  }
56
- });
41
+ catch (err) {
42
+ await this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
43
+ throw err;
44
+ }
45
+ }
57
46
  }
58
47
  getPathToLiveSyncFileOnDevice(appIdentifier) {
59
48
  return `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${appIdentifier}-livesync-in-progress`;
60
49
  }
61
- finalizeSync(liveSyncInfo, projectData) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- try {
64
- const result = yield this.doSync(liveSyncInfo, projectData);
65
- if (!semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
66
- this.livesyncTool.end();
67
- }
68
- return result;
69
- }
70
- catch (e) {
50
+ async finalizeSync(liveSyncInfo, projectData) {
51
+ try {
52
+ const result = await this.doSync(liveSyncInfo, projectData);
53
+ if (!semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
71
54
  this.livesyncTool.end();
72
- throw e;
73
- }
74
- });
75
- }
76
- getCleanupCommand(appIdentifier) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- return {
79
- command: yield this.$staticConfig.getAdbFilePath(),
80
- args: [
81
- "-s",
82
- this.device.deviceInfo.identifier,
83
- "shell",
84
- "rm",
85
- "-rf",
86
- appIdentifier,
87
- ],
88
- };
89
- });
90
- }
91
- doSync(liveSyncInfo, projectData) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const operationId = this.livesyncTool.generateOperationIdentifier();
94
- let result = { operationId, didRefresh: true };
95
- if (liveSyncInfo.modifiedFilesData.length) {
96
- const canExecuteFastSync = !liveSyncInfo.isFullSync &&
97
- this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
98
- const doSyncPromise = this.livesyncTool.sendDoSyncOperation({
99
- doRefresh: canExecuteFastSync,
100
- operationId,
101
- });
102
- const syncInterval = setInterval(() => {
103
- if (this.livesyncTool.isOperationInProgress(operationId)) {
104
- this.$logger.info("Sync operation in progress...");
105
- }
106
- }, AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL);
107
- const cleanupCommand = yield this.getCleanupCommand(liveSyncInfo.deviceAppData.appIdentifier);
108
- const actionOnEnd = () => __awaiter(this, void 0, void 0, function* () {
109
- clearInterval(syncInterval);
110
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
111
- yield this.$cleanupService.removeCleanupCommand(cleanupCommand);
112
- });
113
- yield this.$cleanupService.addCleanupCommand(cleanupCommand);
114
- // We need to clear resources when the action fails
115
- // But we also need the real result of the action.
116
- yield doSyncPromise.then(actionOnEnd.bind(this), actionOnEnd.bind(this));
117
- result = yield doSyncPromise;
118
- }
119
- else {
120
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
121
55
  }
122
56
  return result;
123
- });
57
+ }
58
+ catch (e) {
59
+ this.livesyncTool.end();
60
+ throw e;
61
+ }
124
62
  }
125
- restartApplication(projectData, liveSyncInfo) {
126
- return __awaiter(this, void 0, void 0, function* () {
127
- yield this.device.applicationManager.restartApplication({
128
- appId: liveSyncInfo.deviceAppData.appIdentifier,
129
- projectName: projectData.projectName,
130
- waitForDebugger: liveSyncInfo.waitForDebugger,
131
- projectDir: projectData.projectDir,
132
- });
133
- if (!this.$options.justlaunch &&
134
- !liveSyncInfo.waitForDebugger &&
135
- this.livesyncTool.protocolVersion &&
136
- semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
137
- try {
138
- yield this.connectLivesyncTool(liveSyncInfo.deviceAppData.appIdentifier);
139
- }
140
- catch (e) {
141
- this.$logger.trace("Failed to connect after app restart.");
142
- }
143
- }
144
- });
63
+ async getCleanupCommand(appIdentifier) {
64
+ return {
65
+ command: await this.$staticConfig.getAdbFilePath(),
66
+ args: [
67
+ "-s",
68
+ this.device.deviceInfo.identifier,
69
+ "shell",
70
+ "rm",
71
+ "-rf",
72
+ appIdentifier,
73
+ ],
74
+ };
145
75
  }
146
- shouldRestart(projectData, liveSyncInfo) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- let shouldRestart = false;
76
+ async doSync(liveSyncInfo, projectData) {
77
+ const operationId = this.livesyncTool.generateOperationIdentifier();
78
+ let result = { operationId, didRefresh: true };
79
+ if (liveSyncInfo.modifiedFilesData.length) {
149
80
  const canExecuteFastSync = !liveSyncInfo.isFullSync &&
150
81
  this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
151
- if (!canExecuteFastSync ||
152
- !liveSyncInfo.didRefresh ||
153
- liveSyncInfo.waitForDebugger) {
154
- shouldRestart = true;
155
- }
156
- return shouldRestart;
157
- });
82
+ const doSyncPromise = this.livesyncTool.sendDoSyncOperation({
83
+ doRefresh: canExecuteFastSync,
84
+ operationId,
85
+ });
86
+ const syncInterval = setInterval(() => {
87
+ if (this.livesyncTool.isOperationInProgress(operationId)) {
88
+ this.$logger.info("Sync operation in progress...");
89
+ }
90
+ }, AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL);
91
+ const cleanupCommand = await this.getCleanupCommand(liveSyncInfo.deviceAppData.appIdentifier);
92
+ const actionOnEnd = async () => {
93
+ clearInterval(syncInterval);
94
+ await this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
95
+ await this.$cleanupService.removeCleanupCommand(cleanupCommand);
96
+ };
97
+ await this.$cleanupService.addCleanupCommand(cleanupCommand);
98
+ // We need to clear resources when the action fails
99
+ // But we also need the real result of the action.
100
+ await doSyncPromise.then(actionOnEnd.bind(this), actionOnEnd.bind(this));
101
+ result = await doSyncPromise;
102
+ }
103
+ else {
104
+ await this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
105
+ }
106
+ return result;
158
107
  }
159
- tryRefreshApplication(projectData, liveSyncInfo) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- return true;
108
+ async restartApplication(projectData, liveSyncInfo) {
109
+ await this.device.applicationManager.restartApplication({
110
+ appId: liveSyncInfo.deviceAppData.appIdentifier,
111
+ projectName: projectData.projectName,
112
+ waitForDebugger: liveSyncInfo.waitForDebugger,
113
+ projectDir: projectData.projectDir,
162
114
  });
115
+ if (!this.$options.justlaunch &&
116
+ !liveSyncInfo.waitForDebugger &&
117
+ this.livesyncTool.protocolVersion &&
118
+ semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
119
+ try {
120
+ await this.connectLivesyncTool(liveSyncInfo.deviceAppData.appIdentifier);
121
+ }
122
+ catch (e) {
123
+ this.$logger.trace("Failed to connect after app restart.");
124
+ }
125
+ }
163
126
  }
164
- removeFiles(deviceAppData, localToDevicePaths, projectFilesPath) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- yield this.livesyncTool.removeFiles(_.map(localToDevicePaths, (element) => element.filePath));
167
- const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
168
- yield deviceHashService.removeHashes(localToDevicePaths);
169
- });
127
+ async shouldRestart(projectData, liveSyncInfo) {
128
+ let shouldRestart = false;
129
+ const canExecuteFastSync = !liveSyncInfo.isFullSync &&
130
+ this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
131
+ if (!canExecuteFastSync ||
132
+ !liveSyncInfo.didRefresh ||
133
+ liveSyncInfo.waitForDebugger) {
134
+ shouldRestart = true;
135
+ }
136
+ return shouldRestart;
170
137
  }
171
- transferFilesOnDevice(deviceAppData, localToDevicePaths) {
172
- return __awaiter(this, void 0, void 0, function* () {
173
- const files = _.map(localToDevicePaths, (localToDevicePath) => localToDevicePath.getLocalPath());
174
- yield this.livesyncTool.sendFiles(files);
175
- });
138
+ async tryRefreshApplication(projectData, liveSyncInfo) {
139
+ return true;
176
140
  }
177
- transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
178
- return __awaiter(this, void 0, void 0, function* () {
179
- yield this.livesyncTool.sendDirectory(projectFilesPath);
180
- });
141
+ async removeFiles(deviceAppData, localToDevicePaths, projectFilesPath) {
142
+ await this.livesyncTool.removeFiles(_.map(localToDevicePaths, (element) => element.filePath));
143
+ const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
144
+ await deviceHashService.removeHashes(localToDevicePaths);
181
145
  }
182
- connectLivesyncTool(appIdentifier, connectTimeout) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- const platformData = this.platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, this.data);
185
- const projectFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
186
- if (!this.livesyncTool.hasConnection()) {
187
- yield this.livesyncTool.connect({
188
- appIdentifier,
189
- deviceIdentifier: this.device.deviceInfo.identifier,
190
- appPlatformsPath: projectFilesPath,
191
- connectTimeout,
192
- });
193
- }
194
- });
146
+ async transferFilesOnDevice(deviceAppData, localToDevicePaths) {
147
+ const files = _.map(localToDevicePaths, (localToDevicePath) => localToDevicePath.getLocalPath());
148
+ await this.livesyncTool.sendFiles(files);
149
+ }
150
+ async transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
151
+ await this.livesyncTool.sendDirectory(projectFilesPath);
152
+ }
153
+ async connectLivesyncTool(appIdentifier, connectTimeout) {
154
+ const platformData = this.platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, this.data);
155
+ const projectFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
156
+ if (!this.livesyncTool.hasConnection()) {
157
+ await this.livesyncTool.connect({
158
+ appIdentifier,
159
+ deviceIdentifier: this.device.deviceInfo.identifier,
160
+ appPlatformsPath: projectFilesPath,
161
+ connectTimeout,
162
+ });
163
+ }
195
164
  }
196
165
  }
166
+ exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;
197
167
  AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL = 10000;
198
168
  AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION = "0.2.0";
199
- exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;
200
169
  //# sourceMappingURL=android-device-livesync-sockets-service.js.map