@akylas/nativescript-cli 8.7.2 → 8.8.3

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 (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -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,18 +1,8 @@
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");
14
- const constants_1 = require("../../constants");
15
- const constants_2 = require("../../common/constants");
5
+ const constants_1 = require("../../common/constants");
16
6
  const android_livesync_tool_1 = require("./android-livesync-tool");
17
7
  const path = require("path");
18
8
  const semver = require("semver");
@@ -31,168 +21,146 @@ class AndroidDeviceSocketsLiveSyncService extends android_device_livesync_servic
31
21
  this.$tempService = $tempService;
32
22
  this.livesyncTool = this.$injector.resolve(android_livesync_tool_1.AndroidLivesyncTool);
33
23
  }
34
- beforeLiveSyncAction(deviceAppData) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- if (!this.livesyncTool.hasConnection()) {
37
- try {
38
- const pathToLiveSyncFile = yield this.$tempService.path({
39
- prefix: "livesync",
40
- });
41
- this.$fs.writeFile(pathToLiveSyncFile, "");
42
- yield this.device.fileSystem.putFile(pathToLiveSyncFile, this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
43
- yield this.device.applicationManager.startApplication({
44
- appId: deviceAppData.appIdentifier,
45
- projectName: this.data.projectName,
46
- justLaunch: true,
47
- waitForDebugger: false,
48
- projectDir: deviceAppData.projectDir,
49
- });
50
- yield this.connectLivesyncTool(this.data.projectIdentifiers.android, deviceAppData.connectTimeout);
51
- }
52
- catch (err) {
53
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
54
- throw err;
55
- }
56
- }
57
- });
58
- }
59
- getPathToLiveSyncFileOnDevice(appIdentifier) {
60
- return `${constants_2.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${appIdentifier}-livesync-in-progress`;
61
- }
62
- finalizeSync(liveSyncInfo, projectData) {
63
- return __awaiter(this, void 0, void 0, function* () {
24
+ async beforeLiveSyncAction(deviceAppData) {
25
+ if (!this.livesyncTool.hasConnection()) {
64
26
  try {
65
- const result = yield this.doSync(liveSyncInfo, projectData);
66
- if (!semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
67
- this.livesyncTool.end();
68
- }
69
- return result;
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);
70
40
  }
71
- catch (e) {
72
- this.livesyncTool.end();
73
- throw e;
41
+ catch (err) {
42
+ await this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(deviceAppData.appIdentifier), deviceAppData.appIdentifier);
43
+ throw err;
74
44
  }
75
- });
45
+ }
76
46
  }
77
- getCleanupCommand(appIdentifier) {
78
- return __awaiter(this, void 0, void 0, function* () {
79
- return {
80
- command: yield this.$staticConfig.getAdbFilePath(),
81
- args: [
82
- "-s",
83
- this.device.deviceInfo.identifier,
84
- "shell",
85
- "rm",
86
- "-rf",
87
- appIdentifier,
88
- ],
89
- };
90
- });
47
+ getPathToLiveSyncFileOnDevice(appIdentifier) {
48
+ return `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${appIdentifier}-livesync-in-progress`;
91
49
  }
92
- doSync(liveSyncInfo, projectData) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- const operationId = this.livesyncTool.generateOperationIdentifier();
95
- let result = { operationId, didRefresh: true };
96
- if (liveSyncInfo.modifiedFilesData.length) {
97
- const canExecuteFastSync = !liveSyncInfo.isFullSync &&
98
- this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
99
- const doSyncPromise = this.livesyncTool.sendDoSyncOperation({
100
- doRefresh: canExecuteFastSync,
101
- operationId,
102
- });
103
- const syncInterval = setInterval(() => {
104
- if (this.livesyncTool.isOperationInProgress(operationId)) {
105
- this.$logger.info("Sync operation in progress...");
106
- }
107
- }, AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL);
108
- const cleanupCommand = yield this.getCleanupCommand(liveSyncInfo.deviceAppData.appIdentifier);
109
- const actionOnEnd = () => __awaiter(this, void 0, void 0, function* () {
110
- clearInterval(syncInterval);
111
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
112
- yield this.$cleanupService.removeCleanupCommand(cleanupCommand);
113
- });
114
- yield this.$cleanupService.addCleanupCommand(cleanupCommand);
115
- yield doSyncPromise.then(actionOnEnd.bind(this), actionOnEnd.bind(this));
116
- result = yield doSyncPromise;
117
- }
118
- else {
119
- yield this.device.fileSystem.deleteFile(this.getPathToLiveSyncFileOnDevice(liveSyncInfo.deviceAppData.appIdentifier), liveSyncInfo.deviceAppData.appIdentifier);
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)) {
54
+ this.livesyncTool.end();
120
55
  }
121
56
  return result;
122
- });
57
+ }
58
+ catch (e) {
59
+ this.livesyncTool.end();
60
+ throw e;
61
+ }
123
62
  }
124
- restartApplication(projectData, liveSyncInfo) {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- yield this.device.applicationManager.restartApplication({
127
- appId: liveSyncInfo.deviceAppData.appIdentifier,
128
- projectName: projectData.projectName,
129
- waitForDebugger: liveSyncInfo.waitForDebugger,
130
- projectDir: projectData.projectDir,
131
- });
132
- if (!this.$options.justlaunch &&
133
- !liveSyncInfo.waitForDebugger &&
134
- this.livesyncTool.protocolVersion &&
135
- semver.gte(this.livesyncTool.protocolVersion, AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION)) {
136
- try {
137
- yield this.connectLivesyncTool(liveSyncInfo.deviceAppData.appIdentifier);
138
- }
139
- catch (e) {
140
- this.$logger.trace("Failed to connect after app restart.");
141
- }
142
- }
143
- });
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
+ };
144
75
  }
145
- shouldRestart(projectData, liveSyncInfo) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- 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) {
148
80
  const canExecuteFastSync = !liveSyncInfo.isFullSync &&
149
81
  this.canExecuteFastSyncForPaths(liveSyncInfo, liveSyncInfo.modifiedFilesData, projectData, this.device.deviceInfo.platform);
150
- if (!canExecuteFastSync ||
151
- !liveSyncInfo.didRefresh ||
152
- liveSyncInfo.waitForDebugger) {
153
- shouldRestart = true;
154
- }
155
- return shouldRestart;
156
- });
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;
157
105
  }
158
- tryRefreshApplication(projectData, liveSyncInfo) {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- 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,
161
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
+ }
162
124
  }
163
- removeFiles(deviceAppData, localToDevicePaths, projectFilesPath) {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- yield this.livesyncTool.removeFiles(_.map(localToDevicePaths, (element) => element.filePath));
166
- const deviceHashService = this.device.fileSystem.getDeviceHashService(deviceAppData.appIdentifier);
167
- yield deviceHashService.removeHashes(localToDevicePaths);
168
- });
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;
169
135
  }
170
- transferFilesOnDevice(deviceAppData, localToDevicePaths) {
171
- return __awaiter(this, void 0, void 0, function* () {
172
- const files = _.map(localToDevicePaths, (localToDevicePath) => localToDevicePath.getLocalPath());
173
- yield this.livesyncTool.sendFiles(files);
174
- });
136
+ async tryRefreshApplication(projectData, liveSyncInfo) {
137
+ return true;
175
138
  }
176
- transferDirectoryOnDevice(deviceAppData, localToDevicePaths, projectFilesPath) {
177
- return __awaiter(this, void 0, void 0, function* () {
178
- yield this.livesyncTool.sendDirectory(projectFilesPath);
179
- });
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);
180
143
  }
181
- connectLivesyncTool(appIdentifier, connectTimeout) {
182
- return __awaiter(this, void 0, void 0, function* () {
183
- const platformData = this.platformsDataService.getPlatformData(this.$devicePlatformsConstants.Android, this.data);
184
- const projectFilesPath = path.join(platformData.appDestinationDirectoryPath, constants_1.APP_FOLDER_NAME);
185
- if (!this.livesyncTool.hasConnection()) {
186
- yield this.livesyncTool.connect({
187
- appIdentifier,
188
- deviceIdentifier: this.device.deviceInfo.identifier,
189
- appPlatformsPath: projectFilesPath,
190
- connectTimeout,
191
- });
192
- }
193
- });
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
+ }
194
162
  }
195
163
  }
164
+ exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;
196
165
  AndroidDeviceSocketsLiveSyncService.STATUS_UPDATE_INTERVAL = 10000;
197
166
  AndroidDeviceSocketsLiveSyncService.MINIMAL_VERSION_LONG_LIVING_CONNECTION = "0.2.0";
198
- exports.AndroidDeviceSocketsLiveSyncService = AndroidDeviceSocketsLiveSyncService;