nativescript 8.9.0-alpha.3 → 8.9.0-dev.0

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 (342) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -20
  3. package/lib/base-package-manager.js +47 -64
  4. package/lib/bun-package-manager.js +65 -88
  5. package/lib/color.js +2 -2
  6. package/lib/commands/add-platform.js +14 -30
  7. package/lib/commands/apple-login.js +18 -29
  8. package/lib/commands/appstore-list.js +34 -45
  9. package/lib/commands/appstore-upload.js +52 -65
  10. package/lib/commands/build.js +55 -87
  11. package/lib/commands/clean.js +161 -176
  12. package/lib/commands/command-base.js +14 -27
  13. package/lib/commands/config.js +48 -67
  14. package/lib/commands/create-project.js +210 -229
  15. package/lib/commands/debug.js +66 -88
  16. package/lib/commands/deploy.js +28 -44
  17. package/lib/commands/embedding/embed.js +33 -52
  18. package/lib/commands/extensibility/install-extension.js +5 -16
  19. package/lib/commands/extensibility/list-extensions.js +13 -24
  20. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  21. package/lib/commands/fonts.js +30 -41
  22. package/lib/commands/generate-assets.js +13 -28
  23. package/lib/commands/generate-help.js +2 -13
  24. package/lib/commands/generate.js +12 -60
  25. package/lib/commands/info.js +2 -13
  26. package/lib/commands/install.js +34 -49
  27. package/lib/commands/list-platforms.js +14 -25
  28. package/lib/commands/migrate.js +15 -26
  29. package/lib/commands/native-add.js +23 -46
  30. package/lib/commands/platform-clean.js +19 -32
  31. package/lib/commands/plugin/add-plugin.js +12 -25
  32. package/lib/commands/plugin/build-plugin.js +31 -44
  33. package/lib/commands/plugin/create-plugin.js +110 -133
  34. package/lib/commands/plugin/list-plugins.js +22 -33
  35. package/lib/commands/plugin/remove-plugin.js +20 -33
  36. package/lib/commands/plugin/update-plugin.js +20 -33
  37. package/lib/commands/post-install.js +20 -33
  38. package/lib/commands/prepare.js +19 -35
  39. package/lib/commands/preview.js +49 -62
  40. package/lib/commands/remove-platform.js +7 -18
  41. package/lib/commands/resources/resources-update.js +13 -26
  42. package/lib/commands/run.js +55 -76
  43. package/lib/commands/start.js +6 -19
  44. package/lib/commands/test-init.js +123 -134
  45. package/lib/commands/test.js +66 -89
  46. package/lib/commands/typings.js +126 -142
  47. package/lib/commands/update-platform.js +22 -35
  48. package/lib/commands/update.js +30 -43
  49. package/lib/common/child-process.js +53 -72
  50. package/lib/common/codeGeneration/code-entity.js +1 -1
  51. package/lib/common/codeGeneration/code-printer.js +1 -1
  52. package/lib/common/command-params.js +7 -18
  53. package/lib/common/commands/analytics.js +27 -40
  54. package/lib/common/commands/autocompletion.js +39 -56
  55. package/lib/common/commands/device/device-log-stream.js +12 -23
  56. package/lib/common/commands/device/get-file.js +22 -33
  57. package/lib/common/commands/device/list-applications.js +12 -23
  58. package/lib/common/commands/device/list-devices.js +72 -87
  59. package/lib/common/commands/device/list-files.js +23 -34
  60. package/lib/common/commands/device/put-file.js +22 -33
  61. package/lib/common/commands/device/run-application.js +12 -25
  62. package/lib/common/commands/device/stop-application.js +11 -22
  63. package/lib/common/commands/device/uninstall-application.js +6 -17
  64. package/lib/common/commands/generate-messages.js +17 -28
  65. package/lib/common/commands/help.js +20 -33
  66. package/lib/common/commands/package-manager-get.js +6 -17
  67. package/lib/common/commands/package-manager-set.js +9 -20
  68. package/lib/common/commands/post-install.js +2 -13
  69. package/lib/common/commands/preuninstall.js +23 -38
  70. package/lib/common/commands/proxy/proxy-base.js +8 -19
  71. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  72. package/lib/common/commands/proxy/proxy-get.js +3 -14
  73. package/lib/common/commands/proxy/proxy-set.js +87 -100
  74. package/lib/common/constants.js +11 -11
  75. package/lib/common/decorators.js +10 -22
  76. package/lib/common/dispatchers.js +79 -96
  77. package/lib/common/errors.js +89 -104
  78. package/lib/common/file-system.js +108 -130
  79. package/lib/common/header.js +1 -2
  80. package/lib/common/helpers.js +149 -178
  81. package/lib/common/host-info.js +37 -50
  82. package/lib/common/http-client.js +93 -108
  83. package/lib/common/logger/appenders/cli-appender.js +1 -2
  84. package/lib/common/logger/appenders/emit-appender.js +1 -2
  85. package/lib/common/logger/layouts/cli-layout.js +1 -2
  86. package/lib/common/logger/logger.js +4 -4
  87. package/lib/common/mobile/android/android-application-manager.js +121 -142
  88. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  89. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  90. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  91. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  92. package/lib/common/mobile/android/android-device.js +68 -85
  93. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  94. package/lib/common/mobile/android/android-ini-file-parser.js +8 -6
  95. package/lib/common/mobile/android/android-log-filter.js +1 -1
  96. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  97. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  98. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  99. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  100. package/lib/common/mobile/android/logcat-helper.js +108 -127
  101. package/lib/common/mobile/application-manager-base.js +84 -107
  102. package/lib/common/mobile/device-log-provider-base.js +7 -18
  103. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  104. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  105. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  106. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  107. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  108. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  109. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  110. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  111. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  112. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  113. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  114. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  115. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  116. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  117. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  118. package/lib/common/mobile/mobile-core/devices-service.js +386 -436
  119. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  120. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  121. package/lib/common/mobile/mobile-helper.js +15 -26
  122. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  123. package/lib/common/opener.js +2 -2
  124. package/lib/common/prompter.js +90 -105
  125. package/lib/common/queue.js +9 -20
  126. package/lib/common/services/auto-completion-service.js +39 -52
  127. package/lib/common/services/cancellation.js +17 -28
  128. package/lib/common/services/commands-service.js +146 -169
  129. package/lib/common/services/help-service.js +132 -157
  130. package/lib/common/services/hooks-service.js +93 -108
  131. package/lib/common/services/ios-notification-service.js +21 -34
  132. package/lib/common/services/json-file-settings-service.js +52 -71
  133. package/lib/common/services/lock-service.js +35 -52
  134. package/lib/common/services/message-contract-generator.js +35 -46
  135. package/lib/common/services/micro-templating-service.js +4 -15
  136. package/lib/common/services/net-service.js +90 -107
  137. package/lib/common/services/project-files-manager.js +10 -23
  138. package/lib/common/services/proxy-service.js +13 -24
  139. package/lib/common/services/qr.js +13 -24
  140. package/lib/common/services/settings-service.js +1 -1
  141. package/lib/common/services/xcode-select-service.js +20 -35
  142. package/lib/common/utils.js +2 -2
  143. package/lib/common/validators/project-name-validator.js +1 -1
  144. package/lib/common/validators/validation-result.js +1 -1
  145. package/lib/common/verify-node-version.js +2 -3
  146. package/lib/common/yok.js +23 -36
  147. package/lib/config.js +36 -51
  148. package/lib/constants.js +24 -24
  149. package/lib/controllers/build-controller.js +82 -99
  150. package/lib/controllers/debug-controller.js +107 -128
  151. package/lib/controllers/deploy-controller.js +15 -23
  152. package/lib/controllers/migrate-controller.js +722 -795
  153. package/lib/controllers/platform-controller.js +70 -85
  154. package/lib/controllers/prepare-controller.js +232 -261
  155. package/lib/controllers/run-controller.js +397 -411
  156. package/lib/controllers/update-controller-base.js +16 -29
  157. package/lib/controllers/update-controller.js +94 -119
  158. package/lib/data/prepare-data.js +4 -1
  159. package/lib/definitions/ios.d.ts +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  281. package/node_modules/@npmcli/move-file/package.json +0 -47
  282. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  283. package/node_modules/balanced-match/LICENSE.md +0 -21
  284. package/node_modules/balanced-match/README.md +0 -97
  285. package/node_modules/balanced-match/index.js +0 -62
  286. package/node_modules/balanced-match/package.json +0 -48
  287. package/node_modules/concat-map/.travis.yml +0 -4
  288. package/node_modules/concat-map/LICENSE +0 -18
  289. package/node_modules/concat-map/README.markdown +0 -62
  290. package/node_modules/concat-map/example/map.js +0 -6
  291. package/node_modules/concat-map/index.js +0 -13
  292. package/node_modules/concat-map/package.json +0 -43
  293. package/node_modules/concat-map/test/map.js +0 -39
  294. package/node_modules/fs.realpath/LICENSE +0 -43
  295. package/node_modules/fs.realpath/README.md +0 -33
  296. package/node_modules/fs.realpath/index.js +0 -66
  297. package/node_modules/fs.realpath/old.js +0 -303
  298. package/node_modules/fs.realpath/package.json +0 -26
  299. package/node_modules/inflight/LICENSE +0 -15
  300. package/node_modules/inflight/README.md +0 -37
  301. package/node_modules/inflight/inflight.js +0 -54
  302. package/node_modules/inflight/package.json +0 -29
  303. package/node_modules/inherits/LICENSE +0 -16
  304. package/node_modules/inherits/README.md +0 -42
  305. package/node_modules/inherits/inherits.js +0 -9
  306. package/node_modules/inherits/inherits_browser.js +0 -27
  307. package/node_modules/inherits/package.json +0 -29
  308. package/node_modules/once/LICENSE +0 -15
  309. package/node_modules/once/README.md +0 -79
  310. package/node_modules/once/once.js +0 -42
  311. package/node_modules/once/package.json +0 -33
  312. package/node_modules/path-is-absolute/index.js +0 -20
  313. package/node_modules/path-is-absolute/license +0 -21
  314. package/node_modules/path-is-absolute/package.json +0 -43
  315. package/node_modules/path-is-absolute/readme.md +0 -59
  316. package/node_modules/rimraf/LICENSE +0 -15
  317. package/node_modules/rimraf/README.md +0 -101
  318. package/node_modules/rimraf/bin.js +0 -68
  319. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  320. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  321. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  322. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  323. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  324. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  325. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  326. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  327. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  328. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  329. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  330. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  331. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  332. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  333. package/node_modules/rimraf/package.json +0 -32
  334. package/node_modules/rimraf/rimraf.js +0 -360
  335. package/node_modules/stringify-package/LICENSE +0 -13
  336. package/node_modules/stringify-package/README.md +0 -55
  337. package/node_modules/stringify-package/index.js +0 -18
  338. package/node_modules/stringify-package/package.json +0 -38
  339. package/node_modules/wrappy/LICENSE +0 -15
  340. package/node_modules/wrappy/README.md +0 -36
  341. package/node_modules/wrappy/package.json +0 -29
  342. 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,170 +25,150 @@ 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
+ if (matchingFile && matchingFile[0] && _.startsWith(matchingFile[0], "-")) {
101
+ await this.device.adb.executeShellCommand(["rm", "-f", deviceRootPath]);
102
+ }
103
+ await this.cleanLivesyncDirectories(deviceAppData);
106
104
  }
107
- beforeLiveSyncAction(deviceAppData) {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- const deviceRootPath = yield this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
105
+ async reloadApplicationFiles(deviceAppData, localToDevicePaths) {
106
+ if (!this.port) {
107
+ this.port = await this.$androidProcessService.forwardFreeTcpToAbstractPort({
108
+ deviceIdentifier: deviceAppData.device.deviceInfo.identifier,
110
109
  appIdentifier: deviceAppData.appIdentifier,
111
- getDirname: true,
110
+ abstractPort: `localabstract:${deviceAppData.appIdentifier}-livesync`,
112
111
  });
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
- if (matchingFile && matchingFile[0] && _.startsWith(matchingFile[0], "-")) {
123
- yield this.device.adb.executeShellCommand(["rm", "-f", deviceRootPath]);
124
- }
125
- yield this.cleanLivesyncDirectories(deviceAppData);
126
- });
112
+ }
113
+ if (await this.awaitRuntimeReloadSuccessMessage()) {
114
+ await this.cleanLivesyncDirectories(deviceAppData);
115
+ }
116
+ else {
117
+ return false;
118
+ }
119
+ return true;
127
120
  }
128
- reloadApplicationFiles(deviceAppData, localToDevicePaths) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- if (!this.port) {
131
- this.port = yield this.$androidProcessService.forwardFreeTcpToAbstractPort({
132
- deviceIdentifier: deviceAppData.device.deviceInfo.identifier,
133
- appIdentifier: deviceAppData.appIdentifier,
134
- abstractPort: `localabstract:${deviceAppData.appIdentifier}-livesync`,
135
- });
136
- }
137
- if (yield this.awaitRuntimeReloadSuccessMessage()) {
138
- yield this.cleanLivesyncDirectories(deviceAppData);
139
- }
140
- else {
141
- return false;
142
- }
143
- return true;
121
+ async removeFiles(deviceAppData, localToDevicePaths) {
122
+ const deviceRootPath = await this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
123
+ appIdentifier: deviceAppData.appIdentifier,
124
+ getDirname: true,
144
125
  });
126
+ for (const localToDevicePathData of localToDevicePaths) {
127
+ const relativeUnixPath = _.trimStart(helpers.fromWindowsRelativePathToUnix(localToDevicePathData.getRelativeToProjectBasePath()), "/");
128
+ const deviceFilePath = this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME, relativeUnixPath);
129
+ await this.device.adb.executeShellCommand([
130
+ "mkdir",
131
+ "-p",
132
+ path.dirname(deviceFilePath),
133
+ " && ",
134
+ "touch",
135
+ deviceFilePath,
136
+ ]);
137
+ }
138
+ const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
139
+ await deviceHashService.removeHashes(localToDevicePaths);
145
140
  }
146
- removeFiles(deviceAppData, localToDevicePaths) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- const deviceRootPath = yield this.$devicePathProvider.getDeviceProjectRootPath(deviceAppData.device, {
149
- appIdentifier: deviceAppData.appIdentifier,
150
- getDirname: true,
141
+ async awaitRuntimeReloadSuccessMessage() {
142
+ return new Promise((resolve, reject) => {
143
+ let isResolved = false;
144
+ const socket = new net.Socket();
145
+ socket.connect(this.port, process.env.NATIVESCRIPT_LIVESYNC_ADDRESS || "127.0.0.1", () => {
146
+ socket.write(Buffer.from([0, 0, 0, 1, 1]));
151
147
  });
152
- for (const localToDevicePathData of localToDevicePaths) {
153
- const relativeUnixPath = _.trimStart(helpers.fromWindowsRelativePathToUnix(localToDevicePathData.getRelativeToProjectBasePath()), "/");
154
- const deviceFilePath = this.$mobileHelper.buildDevicePath(deviceRootPath, constants_1.LiveSyncPaths.REMOVEDSYNC_DIR_NAME, relativeUnixPath);
155
- yield this.device.adb.executeShellCommand([
156
- "mkdir",
157
- "-p",
158
- path.dirname(deviceFilePath),
159
- " && ",
160
- "touch",
161
- deviceFilePath,
162
- ]);
163
- }
164
- const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
165
- yield deviceHashService.removeHashes(localToDevicePaths);
166
- });
167
- }
168
- awaitRuntimeReloadSuccessMessage() {
169
- return __awaiter(this, void 0, void 0, function* () {
170
- return new Promise((resolve, reject) => {
171
- let isResolved = false;
172
- const socket = new net.Socket();
173
- socket.connect(this.port, process.env.NATIVESCRIPT_LIVESYNC_ADDRESS || "127.0.0.1", () => {
174
- socket.write(Buffer.from([0, 0, 0, 1, 1]));
175
- });
176
- socket.on("data", (data) => {
148
+ socket.on("data", (data) => {
149
+ isResolved = true;
150
+ socket.destroy();
151
+ resolve(true);
152
+ });
153
+ socket.on("error", () => {
154
+ if (!isResolved) {
155
+ isResolved = true;
156
+ resolve(false);
157
+ }
158
+ });
159
+ socket.on("close", () => {
160
+ if (!isResolved) {
177
161
  isResolved = true;
178
- socket.destroy();
179
- resolve(true);
180
- });
181
- socket.on("error", () => {
182
- if (!isResolved) {
183
- isResolved = true;
184
- resolve(false);
185
- }
186
- });
187
- socket.on("close", () => {
188
- if (!isResolved) {
189
- isResolved = true;
190
- resolve(false);
191
- }
192
- });
162
+ resolve(false);
163
+ }
193
164
  });
194
165
  });
195
166
  }
196
167
  }
168
+ exports.AndroidDeviceLiveSyncService = AndroidDeviceLiveSyncService;
197
169
  __decorate([
198
170
  (0, decorators_1.performanceLog)()
199
171
  ], AndroidDeviceLiveSyncService.prototype, "beforeLiveSyncAction", null);
200
172
  __decorate([
201
173
  (0, decorators_1.performanceLog)()
202
174
  ], AndroidDeviceLiveSyncService.prototype, "removeFiles", null);
203
- exports.AndroidDeviceLiveSyncService = AndroidDeviceLiveSyncService;
@@ -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,168 +21,146 @@ 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
- yield doSyncPromise.then(actionOnEnd.bind(this), actionOnEnd.bind(this));
115
- result = yield doSyncPromise;
116
- }
117
- else {
118
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
119
55
  }
120
56
  return result;
121
- });
57
+ }
58
+ catch (e) {
59
+ this.livesyncTool.end();
60
+ throw e;
61
+ }
122
62
  }
123
- restartApplication(projectData, liveSyncInfo) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- yield this.device.applicationManager.restartApplication({
126
- appId: liveSyncInfo.deviceAppData.appIdentifier,
127
- projectName: projectData.projectName,
128
- waitForDebugger: liveSyncInfo.waitForDebugger,
129
- projectDir: projectData.projectDir,
130
- });
131
- if (!this.$options.justlaunch &&
132
- !liveSyncInfo.waitForDebugger &&
133
- this.livesyncTool.protocolVersion &&
134
- semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
135
- try {
136
- yield this.connectLivesyncTool(liveSyncInfo.deviceAppData.appIdentifier);
137
- }
138
- catch (e) {
139
- this.$logger.trace("Failed to connect after app restart.");
140
- }
141
- }
142
- });
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
+ };
143
75
  }
144
- shouldRestart(projectData, liveSyncInfo) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- 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) {
147
80
  const canExecuteFastSync = !liveSyncInfo.isFullSync &&
148
81
  this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
149
- if (!canExecuteFastSync ||
150
- !liveSyncInfo.didRefresh ||
151
- liveSyncInfo.waitForDebugger) {
152
- shouldRestart = true;
153
- }
154
- return shouldRestart;
155
- });
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
+ await doSyncPromise.then(actionOnEnd.bind(this), actionOnEnd.bind(this));
99
+ result = await doSyncPromise;
100
+ }
101
+ else {
102
+ await this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
103
+ }
104
+ return result;
156
105
  }
157
- tryRefreshApplication(projectData, liveSyncInfo) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- return true;
106
+ async restartApplication(projectData, liveSyncInfo) {
107
+ await this.device.applicationManager.restartApplication({
108
+ appId: liveSyncInfo.deviceAppData.appIdentifier,
109
+ projectName: projectData.projectName,
110
+ waitForDebugger: liveSyncInfo.waitForDebugger,
111
+ projectDir: projectData.projectDir,
160
112
  });
113
+ if (!this.$options.justlaunch &&
114
+ !liveSyncInfo.waitForDebugger &&
115
+ this.livesyncTool.protocolVersion &&
116
+ semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
117
+ try {
118
+ await this.connectLivesyncTool(liveSyncInfo.deviceAppData.appIdentifier);
119
+ }
120
+ catch (e) {
121
+ this.$logger.trace("Failed to connect after app restart.");
122
+ }
123
+ }
161
124
  }
162
- removeFiles(deviceAppData, localToDevicePaths, projectFilesPath) {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- yield this.livesyncTool.removeFiles(_.map(localToDevicePaths, (element) => element.filePath));
165
- const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
166
- yield deviceHashService.removeHashes(localToDevicePaths);
167
- });
125
+ async shouldRestart(projectData, liveSyncInfo) {
126
+ let shouldRestart = false;
127
+ const canExecuteFastSync = !liveSyncInfo.isFullSync &&
128
+ this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
129
+ if (!canExecuteFastSync ||
130
+ !liveSyncInfo.didRefresh ||
131
+ liveSyncInfo.waitForDebugger) {
132
+ shouldRestart = true;
133
+ }
134
+ return shouldRestart;
168
135
  }
169
- transferFilesOnDevice(deviceAppData, localToDevicePaths) {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- const files = _.map(localToDevicePaths, (localToDevicePath) => localToDevicePath.getLocalPath());
172
- yield this.livesyncTool.sendFiles(files);
173
- });
136
+ async tryRefreshApplication(projectData, liveSyncInfo) {
137
+ return true;
174
138
  }
175
- transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
176
- return __awaiter(this, void 0, void 0, function* () {
177
- yield this.livesyncTool.sendDirectory(projectFilesPath);
178
- });
139
+ async removeFiles(deviceAppData, localToDevicePaths, projectFilesPath) {
140
+ await this.livesyncTool.removeFiles(_.map(localToDevicePaths, (element) => element.filePath));
141
+ const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
142
+ await deviceHashService.removeHashes(localToDevicePaths);
179
143
  }
180
- connectLivesyncTool(appIdentifier, connectTimeout) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- const platformData = this.platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, this.data);
183
- const projectFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
184
- if (!this.livesyncTool.hasConnection()) {
185
- yield this.livesyncTool.connect({
186
- appIdentifier,
187
- deviceIdentifier: this.device.deviceInfo.identifier,
188
- appPlatformsPath: projectFilesPath,
189
- connectTimeout,
190
- });
191
- }
192
- });
144
+ async transferFilesOnDevice(deviceAppData, localToDevicePaths) {
145
+ const files = _.map(localToDevicePaths, (localToDevicePath) => localToDevicePath.getLocalPath());
146
+ await this.livesyncTool.sendFiles(files);
147
+ }
148
+ async transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
149
+ await this.livesyncTool.sendDirectory(projectFilesPath);
150
+ }
151
+ async connectLivesyncTool(appIdentifier, connectTimeout) {
152
+ const platformData = this.platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, this.data);
153
+ const projectFilesPath = path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName);
154
+ if (!this.livesyncTool.hasConnection()) {
155
+ await this.livesyncTool.connect({
156
+ appIdentifier,
157
+ deviceIdentifier: this.device.deviceInfo.identifier,
158
+ appPlatformsPath: projectFilesPath,
159
+ connectTimeout,
160
+ });
161
+ }
193
162
  }
194
163
  }
164
+ exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;
195
165
  AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL = 10000;
196
166
  AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION = "0.2.0";
197
- exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;